41554 blogs · [ { "id": "01a0bbeb-ea2c-710d-bcc1-9cff9365cc0b", "title": "Is exception safe code truly possible?", "url": "https://mortoray.com/is-exception-safe-code-truly-possible/", "published_at": "2013-12-05T15:57:26+00:00" }, { "id": "01a0bbef-0aa6-7273-bfac-aba1df7e77ee", "title": "The string type is broken", "url": "https://mortoray.com/the-string-type-is-broken/", "published_at": "2013-11-27T05:21:14+00:00" }, { "id": "01a0bbef-0aa6-7273-bfac-aba1e03ba1c1", "title": "Bridging __VA_ARGS__ to C++ variadic templates", "url": "https://mortoray.com/bridging-__va_args__-to-c-variadic-templates/", "published_at": "2013-11-01T06:27:21+00:00" }, { "id": "01a0bbef-0aa6-7273-bfac-aba1e0e58a46", "title": "Are explicit namespaces required?", "url": "https://mortoray.com/are-explicit-namespaces-required/", "published_at": "2013-10-12T04:16:27+00:00" }, { "id": "01a0bbef-0aa6-7273-bfac-aba1e1aa7d1c", "title": "The true cost of zero cost exceptions", "url": "https://mortoray.com/the-true-cost-of-zero-cost-exceptions/", "published_at": "2013-09-12T04:12:23+00:00" }, { "id": "01a0bbef-0aa6-7273-bfac-aba1e2536080", "title": "We don’t need a string type", "url": "https://mortoray.com/we-dont-need-a-string-type/", "published_at": "2013-08-13T04:09:26+00:00" }, { "id": "01a0bbef-0aa6-7273-bfac-aba1e2a39d0f", "title": "Safely using enable_shared_from_this", "url": "https://mortoray.com/safely-using-enable_shared_from_this/", "published_at": "2013-08-02T04:01:33+00:00" }, { "id": "01a0bbef-0aa6-7273-bfac-aba1e2acb8c7", "title": "Cannot create a proper clone method with shared_ptr", "url": "https://mortoray.com/cannot-create-a-proper-clone-method-with-shared_ptr/", "published_at": "2013-07-25T07:33:10+00:00" }, { "id": "01a0bbef-0aa6-7273-bfac-aba1e36fb3dc", "title": "Compiling an overloaded function: the selectable type", "url": "https://mortoray.com/compiling-an-overloaded-function-the-selectable-type/", "published_at": "2013-07-19T10:07:47+00:00" }, { "id": "01a0bbef-0aa6-7273-bfac-aba1e40a8b86", "title": "Rejuvenating the ternary conditional with optionals", "url": "https://mortoray.com/rejuvenating-the-ternary-conditional-with-optionals/", "published_at": "2013-07-14T12:20:28+00:00" }, { "id": "01a0bbef-0aa6-7273-bfac-aba1e4f44401", "title": "Do we need the conditional ternary operator ?:", "url": "https://mortoray.com/do-we-need-the-conditional-ternary-operator/", "published_at": "2013-07-09T09:54:28+00:00" }, { "id": "01a0bbf2-1ab5-714f-91de-aa5ec656c899", "title": "Why a ‘constexpr’ is just a return statement", "url": "https://mortoray.com/why-a-constexpr-is-just-a-return-statement/", "published_at": "2013-06-22T14:24:34+00:00" }, { "id": "01a0bbf2-1ab5-714f-91de-aa5ec68162e9", "title": "Breaking the type tree with modifiers", "url": "https://mortoray.com/breaking-the-type-tree-with-modifiers/", "published_at": "2013-06-15T16:48:16+00:00" }, { "id": "01a0bbf2-1ab5-714f-91de-aa5ec75021c0", "title": "Modelling type systems: The basics", "url": "https://mortoray.com/modelling-type-systems-the-basics/", "published_at": "2013-06-11T17:08:27+00:00" }, { "id": "01a0bbf2-1ab5-714f-91de-aa5ec7a2cf4c", "title": "Overloading the broken universal reference ‘T&&’", "url": "https://mortoray.com/overriding-the-broken-universal-reference-t/", "published_at": "2013-06-03T04:25:59+00:00" }, { "id": "01a0bbf2-1ab5-714f-91de-aa5ec7a676e3", "title": "How to catch a “return” statement", "url": "https://mortoray.com/how-to-catch-a-return-statement/", "published_at": "2013-05-09T10:22:13+00:00" }, { "id": "01a0bbf2-1ab5-714f-91de-aa5ec7c7d6c6", "title": "Building blocks: Compiling if, defer, break, continue, and exceptions", "url": "https://mortoray.com/building-blocks-compiling-if-defer-break-continue-and-exceptions/", "published_at": "2013-05-06T18:34:34+00:00" }, { "id": "01a0bbf2-1ab5-714f-91de-aa5ec861fb33", "title": "1/2 Should Not Equal Zero", "url": "https://mortoray.com/12-should-not-equal-zero/", "published_at": "2013-04-03T03:55:48+00:00" }, { "id": "01a0bbf2-1ab5-714f-91de-aa5ec8855b5d", "title": "Why do we need pointers/references?", "url": "https://mortoray.com/why-do-we-need-pointersreferences/", "published_at": "2013-03-25T04:27:22+00:00" }, { "id": "01a0bbf2-1ab5-714f-91de-aa5ec888a78f", "title": "Parsing an exact decimal value using GMP", "url": "https://mortoray.com/parsing-an-exact-decimal-value-using-gmp/", "published_at": "2013-03-14T18:20:04+00:00" }, { "id": "01a0bbf2-1ab5-714f-91de-aa5ec94505c9", "title": "Leaf: Simple type conversions", "url": "https://mortoray.com/leaf-simple-type-conversions/", "published_at": "2013-03-05T16:43:08+00:00" }, { "id": "01a0bbf4-f7d9-714f-9160-1a0244f73281", "title": "Leaf: Preserving “lvalue” status", "url": "https://mortoray.com/leaf-preserving-lvalue-status/", "published_at": "2013-02-21T17:54:48+00:00" }, { "id": "01a0bbf4-f7d9-714f-9160-1a02457ba1ed", "title": "What is a System Language?", "url": "https://mortoray.com/what-is-a-system-language/", "published_at": "2013-02-17T18:29:45+00:00" }, { "id": "01a0bbf4-f7d9-714f-9160-1a02463c4b23", "title": "Immutable Values and Invariant Names", "url": "https://mortoray.com/immutable-values-and-invariant-names/", "published_at": "2013-02-04T04:29:27+00:00" }, { "id": "01a0bbf4-f7d9-714f-9160-1a02472ca4d0", "title": "Divorcing a value from its name", "url": "https://mortoray.com/divorcing-a-value-from-its-name/", "published_at": "2013-01-18T06:33:23+00:00" }, { "id": "01a0bbf4-f7d9-714f-9160-1a02472dc329", "title": "How to handle an error", "url": "https://mortoray.com/how-to-handle-an-error/", "published_at": "2013-01-03T17:13:08+00:00" }, { "id": "01a0bbf4-f7d9-714f-9160-1a02481ef6e5", "title": "Of Faults and Errors: Who’s to blame?", "url": "https://mortoray.com/of-faults-and-errors-whos-to-blame/", "published_at": "2012-12-23T08:31:16+00:00" }, { "id": "01a0bbf4-f7d9-714f-9160-1a02491a94e7", "title": "Antiquated Error Handling: abort/exit", "url": "https://mortoray.com/antiquated-error-handling-abortexit/", "published_at": "2012-12-06T04:51:49+00:00" }, { "id": "01a0bbf4-f7d9-714f-9160-1a02492a9a09", "title": "What is a closure?", "url": "https://mortoray.com/what-is-a-closure/", "published_at": "2012-10-24T17:18:09+00:00" }, { "id": "01a0bbf4-f7d9-714f-9160-1a0249c3d94a", "title": "A trail through custom languages", "url": "https://mortoray.com/a-trail-through-custom-languages/", "published_at": "2012-09-26T16:58:35+00:00" }, { "id": "01a0bbf4-f7d9-714f-9160-1a024aafa2dd", "title": "The syntax of a conditional", "url": "https://mortoray.com/the-syntax-of-a-conditional/", "published_at": "2012-09-16T04:01:38+00:00" }, { "id": "01a0bbf7-e4a3-7256-8543-9b3abfbb4cf8", "title": "Why I have my own Android game framework", "url": "https://mortoray.com/why-i-have-my-own-android-game-framework/", "published_at": "2012-08-23T17:37:29+00:00" }, { "id": "01a0bbf7-e4a3-7256-8543-9b3ac0acf164", "title": "Android NDK Cross-Compile Setup (libpng and freetype)", "url": "https://mortoray.com/android-ndk-cross-compile-setup-libpng-and-freetype/", "published_at": "2012-08-21T11:44:46+00:00" }, { "id": "01a0bbf7-e4a3-7256-8543-9b3ac15968db", "title": "Complexity of simple data types", "url": "https://mortoray.com/complexity-of-simple-data-types/", "published_at": "2012-08-06T12:12:53+00:00" }, { "id": "01a0bbf7-e4a3-7256-8543-9b3ac1ea9e44", "title": "Why I don’t use a Parser Generator", "url": "https://mortoray.com/why-i-dont-use-a-parser-generator/", "published_at": "2012-07-20T15:19:12+00:00" }, { "id": "01a0bbf7-e4a3-7256-8543-9b3ac2a0f933", "title": "Can the Ideal language allow custom operators?", "url": "https://mortoray.com/can-the-ideal-language-allows-custom-operators/", "published_at": "2012-07-13T18:41:04+00:00" }, { "id": "01a0bbf7-e4a3-7256-8543-9b3ac3756fc1", "title": "Pitfalls of Performance Testing", "url": "https://mortoray.com/pitfalls-of-performance-testing/", "published_at": "2012-07-09T13:50:14+00:00" }, { "id": "01a0bbf7-e4a3-7256-8543-9b3ac3df7aac", "title": "Cloverleaf: Start with an expression parser", "url": "https://mortoray.com/cloverleaf-start-with-an-expression-parser/", "published_at": "2012-07-07T12:24:23+00:00" }, { "id": "01a0bbf7-e4a3-7256-8543-9b3ac4b0cc8b", "title": "Can a language be safe?", "url": "https://mortoray.com/can-a-language-be-safe/", "published_at": "2012-07-02T05:58:45+00:00" }, { "id": "01a0bbf7-e4a3-7256-8543-9b3ac4eb86d4", "title": "Preprocessor Case Study: Message Dispatching", "url": "https://mortoray.com/preprocessor-case-study-message-dispatching/", "published_at": "2012-06-25T06:38:54+00:00" }, { "id": "01a0bbf7-e4a3-7256-8543-9b3ac5bb15cc", "title": "Abstract Machines, Interpreters and Compilers", "url": "https://mortoray.com/abstract-machines-interpreters-and-compilers/", "published_at": "2012-06-18T04:27:05+00:00" }, { "id": "01a0bbfa-b4ac-7096-b7e3-a98a09c8ea5a", "title": "What’s to love about C?", "url": "https://mortoray.com/whats-to-love-about-c/", "published_at": "2012-06-11T07:12:35+00:00" }, { "id": "01a0bbfa-b4ac-7096-b7e3-a98a0a640364", "title": "How to choose a programming language?", "url": "https://mortoray.com/how-to-choose-a-programming-language/", "published_at": "2012-05-29T16:33:35+00:00" }, { "id": "01a0bbfa-b4ac-7096-b7e3-a98a0b4ecc70", "title": "Everything wrong with exceptions", "url": "https://mortoray.com/everything-wrong-with-exceptions/", "published_at": "2012-04-02T01:45:19+00:00" }, { "id": "01a0bbfa-b4ac-7096-b7e3-a98a0c0a7120", "title": "The Necessity of Exceptions", "url": "https://mortoray.com/the-necessity-of-exceptions/", "published_at": "2012-03-08T06:28:08+00:00" }, { "id": "01a0bbfa-b4ac-7096-b7e3-a98a0c7ea20b", "title": "Double-checked locking: Why doesn’t it work and how to fix it", "url": "https://mortoray.com/double-checked-locking-why-doesnt-it-work-and-how-to-fix-it/", "published_at": "2012-02-28T19:12:37+00:00" }, { "id": "01a0bbfa-b4ac-7096-b7e3-a98a0d57facd", "title": "Performance is irrelevant", "url": "https://mortoray.com/performance-is-irrelevant/", "published_at": "2012-02-09T05:16:43+00:00" }, { "id": "01a0bbfa-b4ac-7096-b7e3-a98a0d8cfd67", "title": "Never use the “continue” keyword!", "url": "https://mortoray.com/never-use-the-continue-keyword/", "published_at": "2012-01-22T14:24:34+00:00" }, { "id": "01a0bbfa-b4ac-7096-b7e3-a98a0e59dfa7", "title": "What is reference counting?", "url": "https://mortoray.com/what-is-reference-counting/", "published_at": "2012-01-08T14:52:56+00:00" }, { "id": "01a0bbfa-b4ac-7096-b7e3-a98a0efd9b5a", "title": "What’s an object? What’s a variable?", "url": "https://mortoray.com/whats-an-object-whats-a-variable/", "published_at": "2012-01-08T14:42:49+00:00" }, { "id": "01a0bbfa-b4ac-7096-b7e3-a98a0fee9884", "title": "Dangerous and confusing casting", "url": "https://mortoray.com/dangerous-and-confusing-casting/", "published_at": "2011-11-20T08:51:07+00:00" }, { "id": "01a0bbfe-bc9a-7093-ad75-fa4049e8d071", "title": "Requirements for a Concurrent (Threaded) Library / API", "url": "https://mortoray.com/requirements-for-a-concurrent-threaded-library-api/", "published_at": "2011-11-13T15:08:04+00:00" }, { "id": "01a0bbfe-bc9a-7093-ad75-fa4049fc0eaf", "title": "Mismatched Allocation and Delete Nonsense", "url": "https://mortoray.com/mismatched_allocation_and_delete_nonsense/", "published_at": "2011-10-30T08:17:15+00:00" }, { "id": "01a0bbfe-bc9a-7093-ad75-fa404aba13f8", "title": "Implicit Type Promotion and Conversion", "url": "https://mortoray.com/implicit-type-promotion-and-conversion/", "published_at": "2011-10-27T09:50:00+00:00" }, { "id": "01a0bbfe-bc9a-7093-ad75-fa404b61cc49", "title": "The Ideal Language has “goto”", "url": "https://mortoray.com/the-ideal-language-has-goto/", "published_at": "2011-10-23T04:57:25+00:00" }, { "id": "01a0bbfe-bc9a-7093-ad75-fa404c1d5cae", "title": "How Polymorphism Works: Part 2: Virtual Table", "url": "https://mortoray.com/how_polymorphism_works-part2-virtual-table/", "published_at": "2011-08-12T14:51:17+00:00" }, { "id": "01a0bbfe-bc9a-7093-ad75-fa404c3f8360", "title": "How Polymorphism Works: Part 1", "url": "https://mortoray.com/how_polymorphism_works_part1/", "published_at": "2011-08-09T02:34:41+00:00" }, { "id": "01a0bbfe-bc9a-7093-ad75-fa404cf7911e", "title": "No new language will stop your program from crashing", "url": "https://mortoray.com/no-new-language-will-stop-your-program-from-crashing/", "published_at": "2011-08-06T13:34:25+00:00" }, { "id": "01a0bbfe-bc9a-7093-ad75-fa404db49b4f", "title": "The Ideal Lanuage has a way to format strings", "url": "https://mortoray.com/the-ideal-lanuage-has-a-way-to-format-strings/", "published_at": "2011-07-31T18:22:05+00:00" }, { "id": "01a0bbfe-bc9a-7093-ad75-fa404df48955", "title": "Why Garbage Collection is not Necessary and actually Harmful", "url": "https://mortoray.com/why-garbage-collection-is-not-necessary-and-actually-harmful/", "published_at": "2011-03-30T02:34:21+00:00" }, { "id": "01a0bbfe-bc9a-7093-ad75-fa404e159628", "title": "What is an atomic operation?", "url": "https://mortoray.com/what-is-an-atomic-operation/", "published_at": "2011-03-23T03:47:44+00:00" }, { "id": "01a0bc01-5a04-7056-9782-aafd643a58c0", "title": "The ideal language must be automatically typed", "url": "https://mortoray.com/the-ideal-language-must-be-automatically-typed/", "published_at": "2011-03-10T18:38:10+00:00" }, { "id": "01a0bc01-5a04-7056-9782-aafd64ee925f", "title": "The Ideal Language cannot leak resources", "url": "https://mortoray.com/the-ideal-language-cannot-leak-resources/", "published_at": "2011-03-08T19:59:22+00:00" }, { "id": "01a0bc01-5a04-7056-9782-aafd651804e6", "title": "CPU Reordering – What is actually being reordered?", "url": "https://mortoray.com/cpu-reordering-what-is-actually-being-reordered/", "published_at": "2010-11-18T09:22:46+00:00" }, { "id": "01a0bc01-5a04-7056-9782-aafd65e5799e", "title": "CPU Memory – Why do I need a mutex?", "url": "https://mortoray.com/cpu-memory-why-do-i-need-a-mutex/", "published_at": "2010-11-18T09:21:39+00:00" }, { "id": "01a0bc01-5a04-7056-9782-aafd661d00c9", "title": "The Cost – A Function Call", "url": "https://mortoray.com/the-cost-a-function-call/", "published_at": "2010-10-12T02:23:41+00:00" }, { "id": "01a0bc01-5a04-7056-9782-aafd67023adc", "title": "The Cost – Instantiation and the hidden enemy “new”", "url": "https://mortoray.com/the-cost-instantiation-and-the-hidden-enemy-new/", "published_at": "2010-10-12T02:11:40+00:00" }, { "id": "01a0bc01-5a04-7056-9782-aafd677b2f01", "title": "The Cost – Programming Performance and Efficiency", "url": "https://mortoray.com/the-cost-programming-performance-and-efficiency/", "published_at": "2010-10-12T02:09:41+00:00" }, { "id": "01a0bc01-5a04-7056-9782-aafd679680e8", "title": "The Evil and Joy of Overloading", "url": "https://mortoray.com/the-evil-and-joy-of-overloading/", "published_at": "2010-07-15T05:25:04+00:00" }, { "id": "01a0bc01-5a04-7056-9782-aafd67a07d92", "title": "Lingering Spaces and the Problems of Overformatting", "url": "https://mortoray.com/lingering-spaces-and-the-problems-of-overformatting/", "published_at": "2010-06-14T07:54:02+00:00" }, { "id": "01a0bc01-5a04-7056-9782-aafd67d6cb80", "title": "Curiously protective C++", "url": "https://mortoray.com/curiously-protective-c/", "published_at": "2010-06-14T07:38:32+00:00" }, { "id": "01a0bc03-e4a2-73e3-b5c7-b1b3d55909e7", "title": "Rules for Framework Development", "url": "https://mortoray.com/rules-for-framework-development/", "published_at": "2010-04-23T12:29:34+00:00" }, { "id": "01a0bc03-e4a2-73e3-b5c7-b1b3d60cf2c7", "title": "Sessionless Authentication with Encrypted Tokens", "url": "https://mortoray.com/sessionless-authentication-with-encrypted-tokens/", "published_at": "2010-02-11T05:59:36+00:00" }, { "id": "01a0bc03-e4a2-73e3-b5c7-b1b3d6232877", "title": "The 2 Most Important Equivalence Classes for Application Testing", "url": "https://mortoray.com/the-2-most-important-equivalence-classes-for-application-testing/", "published_at": "2010-01-07T09:07:06+00:00" }, { "id": "01a0bc03-e4a2-73e3-b5c7-b1b3d6785ea1", "title": "The 5 Ways to Test a Web Application – How They Work and How They Fail", "url": "https://mortoray.com/the-5-ways-to-test-a-web-application-how-they-work-and-how-they-fail/", "published_at": "2010-01-07T08:38:01+00:00" } ] posts Claim your blog
Back to mortoray.com
Blog · corpus.blog/blogs/mortoray.com/posts

mortoray.com

mortoray.com

2013

2012

2011

2010