41554 blogs · [ { "id": "01a08779-211f-7143-9796-da162689a5b9", "title": "Trip Report: Fall ISO C++ Meeting in Wrocław, Poland", "url": "https://www.foonathan.net/2024/11/trip-report-wroclaw-2024/", "published_at": "2024-11-20T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da162783b6c2", "title": "if constexpr requires requires { requires }", "url": "https://www.foonathan.net/2024/10/if-constexpr-requires-requires/", "published_at": "2024-10-23T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1627ad4c4b", "title": "Trip Report: Summer ISO C++ Meeting in St. Louis, USA", "url": "https://www.foonathan.net/2024/07/trip-report-stlouis-2024/", "published_at": "2024-07-12T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1627fefa53", "title": "Trip Report: C++Now 2024", "url": "https://www.foonathan.net/2024/05/trip-report-cppnow-2024/", "published_at": "2024-05-08T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1628d26f73", "title": "Trip Report: Spring ISO C++ Meeting in Tokyo, Japan", "url": "https://www.foonathan.net/2024/03/trip-report-tokyo-2024/", "published_at": "2024-03-27T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da16299a1999", "title": "I'm the new assistant chair of SG 9, the study group for std::ranges!", "url": "https://www.foonathan.net/2024/03/sg9/", "published_at": "2024-03-08T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da162a90a067", "title": "C++ needs undefined behavior, but maybe less", "url": "https://www.foonathan.net/2023/11/undefined-behavior/", "published_at": "2023-11-20T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da162b79f223", "title": "Compile-time sizes for range adaptors", "url": "https://www.foonathan.net/2023/08/compile-time-sizes-range-adaptors/", "published_at": "2023-08-29T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da162c75fb17", "title": "The new static constexpr std::integral_constant idiom", "url": "https://www.foonathan.net/2023/08/static-constexpr-integral_constant/", "published_at": "2023-08-07T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da162c9db971", "title": "Should we stop writing functions?", "url": "https://www.foonathan.net/2023/07/stop-writing-functions/", "published_at": "2023-07-25T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da162d5edccf", "title": "Constrain your user-defined conversions", "url": "https://www.foonathan.net/2023/07/constrain-user-defined-conversions/", "published_at": "2023-07-05T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da162e1dfe47", "title": "Trip report: Summer ISO C++ Meeting in Varna, Bulgaria", "url": "https://www.foonathan.net/2023/06/trip-report-varna-2023/", "published_at": "2023-06-10T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da162e7ced15", "title": "Technique: Proof types to ensure preconditions", "url": "https://www.foonathan.net/2022/11/proof-types/", "published_at": "2022-11-30T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da162efaebc7", "title": "New integer types I'd like to see", "url": "https://www.foonathan.net/2022/09/new-integer-types/", "published_at": "2022-09-29T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da162f5d057e", "title": "malloc() and free() are a bad API", "url": "https://www.foonathan.net/2022/08/malloc-interface/", "published_at": "2022-08-31T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da162fa3d088", "title": "Carbon's most exciting feature is its calling convention", "url": "https://www.foonathan.net/2022/07/carbon-calling-convention/", "published_at": "2022-07-29T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da162fc59573", "title": "Tutorial: Preparing libraries for CMake FetchContent", "url": "https://www.foonathan.net/2022/06/cmake-fetchcontent/", "published_at": "2022-06-29T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1630b274c5", "title": "Technique: Recursive variants and boxes", "url": "https://www.foonathan.net/2022/05/recursive-variant-box/", "published_at": "2022-05-31T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da16311e676e", "title": "`saturating_add` vs. `saturating_int` -- new function vs. new type?", "url": "https://www.foonathan.net/2022/03/behavior-function-type/", "published_at": "2022-03-30T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1631e991b2", "title": "Technique: Compile Time Code Generation and Optimization", "url": "https://www.foonathan.net/2022/01/compile-time-codegen/", "published_at": "2022-01-27T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1632509fd3", "title": "I accidentally wrote a Turing-complete parsing library", "url": "https://www.foonathan.net/2021/11/lexy-turing/", "published_at": "2021-11-25T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1632d4881d", "title": "Tutorial: the CRTP Interface Technique", "url": "https://www.foonathan.net/2021/10/crtp-interface/", "published_at": "2021-10-12T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1633c29def", "title": "C++20 concepts are structural: What, why, and how to change it?", "url": "https://www.foonathan.net/2021/07/concepts-structural-nominal/", "published_at": "2021-07-29T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1633cd7271", "title": "Tutorial: Interactive code snippets with Hugo and Compiler Explorer", "url": "https://www.foonathan.net/2021/05/hugo-godbolt/", "published_at": "2021-05-31T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1633db1cc5", "title": "Implementation Challenge: Lossless, compact parse tree with iterative traversal", "url": "https://www.foonathan.net/2021/04/parse_tree/", "published_at": "2021-04-28T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163430bc26", "title": "Trivially copyable does not mean trivially copy constructible", "url": "https://www.foonathan.net/2021/03/trivially-copyable/", "published_at": "2021-03-25T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163509a594", "title": "What is the unit of a text column number?", "url": "https://www.foonathan.net/2021/02/column/", "published_at": "2021-02-17T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1635d047cb", "title": "Tricks with Default Template Arguments", "url": "https://www.foonathan.net/2020/10/tricks-default-template-argument/", "published_at": "2020-10-27T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da16368256ee", "title": "`constexpr` is a Platform", "url": "https://www.foonathan.net/2020/10/constexpr-platform/", "published_at": "2020-10-19T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163732ffe4", "title": "Technique: Immediately-Invoked Function Expression for Metaprogramming", "url": "https://www.foonathan.net/2020/10/iife-metaprogramming/", "published_at": "2020-10-02T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1637f5baa2", "title": "Implementation Challenge: Replacing std::move and std::forward", "url": "https://www.foonathan.net/2020/09/move-forward/", "published_at": "2020-09-22T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1638d6f55d", "title": "Nifty Fold Expression Tricks", "url": "https://www.foonathan.net/2020/05/fold-tricks/", "published_at": "2020-05-05T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1638f05b9b", "title": "Tutorial: C++20's Iterator Sentinels", "url": "https://www.foonathan.net/2020/03/iterator-sentinel/", "published_at": "2020-03-25T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da16395623ac", "title": "std::polymorphic_value + Duck Typing = Type Erasure", "url": "https://www.foonathan.net/2020/01/type-erasure/", "published_at": "2020-01-17T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163a01aa67", "title": "Naming Things: Implementer vs. User Names", "url": "https://www.foonathan.net/2019/11/implementer-vs-user-names/", "published_at": "2019-11-27T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163accc6b5", "title": "Standardese Documentation Generator: Post Mortem and My Open-Source Future", "url": "https://www.foonathan.net/2019/11/standardese-post-mortem/", "published_at": "2019-11-05T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163aff0107", "title": "Tutorial: When to Write Which Special Member", "url": "https://www.foonathan.net/2019/02/special-member-functions/", "published_at": "2019-02-26T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163b1da590", "title": "Nested Optionals, Expected and Composition", "url": "https://www.foonathan.net/2018/12/nested-optionals-expected/", "published_at": "2018-12-11T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163b50833a", "title": "Inline Namespaces 101", "url": "https://www.foonathan.net/2018/11/inline-namespaces/", "published_at": "2018-11-22T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163b5b9b64", "title": "Tutorial: Managing Compiler Warnings with CMake", "url": "https://www.foonathan.net/2018/10/cmake-warnings/", "published_at": "2018-10-17T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163b96c5df", "title": "Proposals to Fix the Spaceship Operator", "url": "https://www.foonathan.net/2018/10/spaceship-proposals/", "published_at": "2018-10-13T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163baed7e6", "title": "Mathematics behind Comparison #5: Ordering Algorithms", "url": "https://www.foonathan.net/2018/10/ordering-algorithms/", "published_at": "2018-10-01T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163c9cee36", "title": "Mathematics behind Comparison #4: Three-Way Comparison", "url": "https://www.foonathan.net/2018/09/three-way-comparison/", "published_at": "2018-09-07T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163d9435cb", "title": "Mathematics behind Comparison #3: Ordering Relations in C++", "url": "https://www.foonathan.net/2018/07/ordering-relations-programming/", "published_at": "2018-07-19T00:00:01+00:00" }, { "id": "01a08779-211f-7143-9796-da163e50dce6", "title": "Mathematics behind Comparison #2: Ordering Relations in Math", "url": "https://www.foonathan.net/2018/07/ordering-relations-math/", "published_at": "2018-07-19T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163f11cde1", "title": "Let's Talk about std::optional and optional references", "url": "https://www.foonathan.net/2018/07/optional-reference/", "published_at": "2018-07-12T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163fdd1caf", "title": "Mathematics behind Comparison #1: Equality and Equivalence Relations", "url": "https://www.foonathan.net/2018/06/equivalence-relations/", "published_at": "2018-06-20T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da163fe807ca", "title": "A (Better) Taxonomy of Pointers", "url": "https://www.foonathan.net/2018/06/pointer-taxonomy/", "published_at": "2018-06-01T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1640a8dece", "title": "optional in Containers Ⅱ — Not All std::vector Usages Are The Same", "url": "https://www.foonathan.net/2018/04/optional-container-followup/", "published_at": "2018-04-17T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da16417dc917", "title": "Should You Put optional in a Container?", "url": "https://www.foonathan.net/2018/04/optional-in-container/", "published_at": "2018-04-09T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1642746869", "title": "Guidelines For Rvalue References In APIs", "url": "https://www.foonathan.net/2018/03/rvalue-references-api-guidelines/", "published_at": "2018-03-26T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1642ff3656", "title": "Flexible issue management with Trello and IFTTT", "url": "https://www.foonathan.net/2018/03/issue-management-trello-ifttt/", "published_at": "2018-03-15T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da164300efef", "title": "Guidelines for constructor and cast design", "url": "https://www.foonathan.net/2018/01/constructors-casts-design/", "published_at": "2018-01-26T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da164314adaf", "title": "Implementation Challenge: Revisiting the visitor pattern", "url": "https://www.foonathan.net/2017/12/visitors/", "published_at": "2017-12-21T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da16431c15c6", "title": "Exceptions vs expected: Let's find a compromise", "url": "https://www.foonathan.net/2017/12/exceptions-vs-expected/", "published_at": "2017-12-04T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da16434994ee", "title": "What should be part of the C++ standard library?", "url": "https://www.foonathan.net/2017/11/standard-library/", "published_at": "2017-11-20T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1643a3b08c", "title": "Write explicit constructors - but what about assignment?", "url": "https://www.foonathan.net/2017/10/explicit-assignment/", "published_at": "2017-10-11T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da164432ed56", "title": "Thoughts on destructive move", "url": "https://www.foonathan.net/2017/09/destructive-move/", "published_at": "2017-09-14T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1644c0746e", "title": "Operator precedence is broken", "url": "https://www.foonathan.net/2017/07/operator-precedence/", "published_at": "2017-07-24T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da16451b5160", "title": "Lazy evaluation of function arguments in C++", "url": "https://www.foonathan.net/2017/06/lazy-evaluation/", "published_at": "2017-06-27T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1645de4d5f", "title": "Prefer nonmember, nonfriends?", "url": "https://www.foonathan.net/2017/06/member-vs-free/", "published_at": "2017-06-14T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1646af40ba", "title": "The year is 2017 - Is the preprocessor still needed in C++?", "url": "https://www.foonathan.net/2017/05/preprocessor/", "published_at": "2017-05-08T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1647674eb2", "title": "cppast - A library to parse and work with the C++ AST", "url": "https://www.foonathan.net/2017/04/cppast/", "published_at": "2017-04-20T00:00:00+00:00" }, { "id": "01a08779-211f-7143-9796-da1647790237", "title": "std::string_view accepting temporaries: good idea or horrible pitfall?", "url": "https://www.foonathan.net/2017/03/string_view-temporary/", "published_at": "2017-03-22T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b817e99ec", "title": "Implementation Challenge flag_set: Type-safe, hard to misuse bitmask", "url": "https://www.foonathan.net/2017/03/implementation-challenge-bitmask/", "published_at": "2017-03-16T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b82759202", "title": "Implementing a tuple_iterator", "url": "https://www.foonathan.net/2017/03/tuple-iterator/", "published_at": "2017-03-01T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b831358c5", "title": "The problem with policy-based design", "url": "https://www.foonathan.net/2017/02/policy-based-design-problem/", "published_at": "2017-02-08T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b838c3e89", "title": "Implementing function_view is harder than you might think", "url": "https://www.foonathan.net/2017/01/function-ref-implementation/", "published_at": "2017-01-20T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b841609d4", "title": "How to handle errors in constructors without exceptions?", "url": "https://www.foonathan.net/2017/01/exceptions-constructor/", "published_at": "2017-01-09T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b84bb37e0", "title": "My take on variant", "url": "https://www.foonathan.net/2016/12/variant/", "published_at": "2016-12-28T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b85478665", "title": "Tutorial: Conditionally disabling non-template functions", "url": "https://www.foonathan.net/2016/12/conditionally-removing-functions/", "published_at": "2016-12-21T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b862ce510", "title": "Fixing std::initializer_list", "url": "https://www.foonathan.net/2016/12/fixing-initializer-list/", "published_at": "2016-12-08T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8639f5a4", "title": "standardese documentation generator version 0.3: Groups, inline documentation, template mode & more", "url": "https://www.foonathan.net/2016/11/standardese-0.3/", "published_at": "2016-11-26T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b86d2f7f5", "title": "Memory 0.6: Composition and Joint Allocators", "url": "https://www.foonathan.net/2016/11/memory-0.6/", "published_at": "2016-11-21T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8789c950", "title": "Function templates - deduce template arguments or pass explicitly?", "url": "https://www.foonathan.net/2016/11/template-argument-deduction/", "published_at": "2016-11-04T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b87c46147", "title": "void foo(T& out) - How to fix output parameters", "url": "https://www.foonathan.net/2016/10/output-parameter/", "published_at": "2016-10-26T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b883db888", "title": "Tutorial: Emulating strong/opaque typedefs in C++", "url": "https://www.foonathan.net/2016/10/strong-typedefs/", "published_at": "2016-10-19T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b88a0ac1c", "title": "Type safe - Zero overhead utilities for more type safety", "url": "https://www.foonathan.net/2016/10/type-safe/", "published_at": "2016-10-11T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b88f29370", "title": "Prevent precondition errors with the C++ type system", "url": "https://www.foonathan.net/2016/09/error-handling-types/", "published_at": "2016-09-27T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b89bb892a", "title": "How do I implement assertions?", "url": "https://www.foonathan.net/2016/09/assertions/", "published_at": "2016-09-16T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b89f6b7d4", "title": "Implementation Challenge: Concepts in C++14", "url": "https://www.foonathan.net/2016/09/cpp14-concepts/", "published_at": "2016-09-09T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8a451f0b", "title": "Choosing the right error handling strategy", "url": "https://www.foonathan.net/2016/09/error-handling-strategy/", "published_at": "2016-09-07T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8b08366f", "title": "Move Semantics and Default Constructors -- Rule of Six?", "url": "https://www.foonathan.net/2016/08/move-default-ctor/", "published_at": "2016-08-24T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8b2d3fb2", "title": "Standardese documentation generator version 0.2: Entity linking, index generation & more", "url": "https://www.foonathan.net/2016/08/standardese-02/", "published_at": "2016-08-10T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8b6cf70e", "title": "Move Safety -- Know What Can Be Done in the Moved-From State", "url": "https://www.foonathan.net/2016/07/move-safety/", "published_at": "2016-07-23T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8b9c1810", "title": "Tutorial: Easy dependency management for C++ with CMake and Git", "url": "https://www.foonathan.net/2016/07/cmake-dependency-handling/", "published_at": "2016-07-07T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8c03c9f4", "title": "Flexible error handling techniques in C++", "url": "https://www.foonathan.net/2016/06/flexible-error-handling/", "published_at": "2016-06-27T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8c29e007", "title": "Standardese documentation generator version 0.1", "url": "https://www.foonathan.net/2016/06/standardese-01/", "published_at": "2016-06-09T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8cff0b5a", "title": "You (probably) do want `final` classes?", "url": "https://www.foonathan.net/2016/05/final2/", "published_at": "2016-05-29T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8dd372cb", "title": "You (probably) don't want `final` classes", "url": "https://www.foonathan.net/2016/05/final/", "published_at": "2016-05-27T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8e0b4ba5", "title": "Issue driven development", "url": "https://www.foonathan.net/2016/05/issue-driven-development/", "published_at": "2016-05-21T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8e8f8688", "title": "Standardese - a (work-in-progress) nextgen Doxygen", "url": "https://www.foonathan.net/2016/05/standardese-nextgen-doxygen/", "published_at": "2016-05-06T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8f84b5c8", "title": "How I have beaten Boost.Pool #4: About abstractions and algorithms", "url": "https://www.foonathan.net/2016/04/boosting-pools-4/", "published_at": "2016-04-18T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b8fb06208", "title": "How I have beaten Boost.Pool #3: Branches are bad", "url": "https://www.foonathan.net/2016/04/boosting-pools-3/", "published_at": "2016-04-13T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b90470cd2", "title": "(Awesome?) Allocator Additions - Thoughts regarding allocator proposals", "url": "https://www.foonathan.net/2016/04/allocator-proposals/", "published_at": "2016-04-04T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b91400253", "title": "How I have beaten Boost.Pool #2: Inlining is key", "url": "https://www.foonathan.net/2016/03/boosting-pools-2/", "published_at": "2016-03-29T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b91680600", "title": "How I have beaten Boost.Pool #1: Introduction and profiling results", "url": "https://www.foonathan.net/2016/03/boosting-pools-1/", "published_at": "2016-03-18T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b91708257", "title": "Performing arbitrary calculations with the Concept TS", "url": "https://www.foonathan.net/2016/03/computational-concepts/", "published_at": "2016-03-10T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b921baf51", "title": "Tutorial: Easily supporting CMake install and find_package()", "url": "https://www.foonathan.net/2016/03/cmake-install/", "published_at": "2016-03-03T00:00:00+00:00" }, { "id": "01a08779-2120-70cf-a4fb-8b4b926cdfc8", "title": "Memory 0.5: Better build system, Low-level Allocators, BlockAllocator & Your Feedback is needed", "url": "https://www.foonathan.net/2016/02/memory-0.5/", "published_at": "2016-02-23T00:00:00+00:00" } ] posts Claim your blog
Back to foonathan.net
Blog · corpus.blog/blogs/foonathan.net/posts

foonathan.net

foonathan.net

2024

2023

2022

2021

2020

2019

2018

2017

2016