| | https://www.fluentcpp.com/ |
| Jonathan Boccara | https://www.fluentcpp.com/author/ |
| The Legacy Code Programmer's Toolbox | https://leanpub.com/legacycode?utm_source=blog&utm_campaign=bio |
| follow me | http://twitter.com/joboccara |
| http://twitter.com/http://joboccara |
| https://www.linkedin.com/in/jonathan-boccara-23826921/ |
| Read more | http://fluentcpp.com/about-me |
| https://www.fluentcpp.com/posts/ |
| https://www.fluentcpp.com/posts/ |
| Posts | https://www.fluentcpp.com/posts/ |
| The World Map of C++ STL Algorithms | https://www.fluentcpp.com/getthemap/ |
| Daily C++ | https://www.fluentcpp.com/dailycpp/ |
| Store | https://www.redbubble.com/people/fluentcpp/shop?asc=u |
| About | https://www.fluentcpp.com/about-me/ |
| https://www.patreon.com/fluentcpp |
| Tweet | https://twitter.com/share?text=Posts:&url=https://www.fluentcpp.com/posts/&via=JoBoccara |
| General expressive code C++ | https://www.fluentcpp.com/posts/#expressive-code |
| The STL | https://www.fluentcpp.com/STL |
| Methodology | https://www.fluentcpp.com/posts/#methodology |
| Strong types in C++ | https://www.fluentcpp.com/posts/#strong-types |
| Function parameters in C++ | https://www.fluentcpp.com/posts/#default-parameters |
| Smart pointers in C++ | https://www.fluentcpp.com/posts/#smart-pointers |
| Performance | https://www.fluentcpp.com/posts/#performance |
| Data structures in C++ | https://www.fluentcpp.com/posts/#data-structures |
| Boost | https://www.fluentcpp.com/posts/#boost |
| Word counts in code | https://www.fluentcpp.com/posts/#wordcounts |
| Refactoring in C++ | https://www.fluentcpp.com/posts/#refactoring |
| C++ Templates | https://www.fluentcpp.com/posts/#templates |
| Challenges for the most expressive code | https://www.fluentcpp.com/posts/#challenges |
| Meta-posts | https://www.fluentcpp.com/posts/#meta-posts |
| How to choose good names in your code | https://www.fluentcpp.com/2017/01/30/how-to-choose-good-names/ |
| Make your functions functional | https://www.fluentcpp.com/2016/11/22/make-your-functions-functional/ |
| video | https://www.fluentcpp.com/2017/12/08/make-functions-functional-video/ |
| Respect levels of abstraction | https://www.fluentcpp.com/2016/12/15/respect-levels-of-abstraction/ |
| Super expressive code by Raising Levels of Abstraction | https://www.fluentcpp.com/2017/01/03/super-expressive-code-by-raising-levels-of-abstraction/ |
| Making code expressive with lambdas | https://www.fluentcpp.com/2017/01/19/making-code-expressive-lambdas/ |
| What 70 people came up with on expressive code | https://www.fluentcpp.com/2017/02/06/what-70-people-came-up-with-on-expressive-code/ |
| Clearer interfaces with optional | https://www.fluentcpp.com/2016/11/24/clearer-interfaces-with-optionalt/ |
| Partial queries with optional | https://www.fluentcpp.com/2016/12/01/partial-queries-with-optionalt/ |
| How typed C++ is, and why it matters | https://www.fluentcpp.com/2017/03/31/how-typed-cpp-is-and-why-it-matters/ |
| Restricting an interface in C++ | https://www.fluentcpp.com/2017/04/07/restricting-interface/ |
| To comment or not to comment // that is the question | https://www.fluentcpp.com/2017/05/02/to-comment-or-not-to-comment-that-is-the-question/ |
| How Compact Code Can Become Buggy Code: Getting Caught By The Order of Evaluations | https://www.fluentcpp.com/2017/05/09/compact-code-becomes-buggy-code-order-evaluations/ |
| Expressive C++ Template Metaprogramming | https://www.fluentcpp.com/2017/06/02/write-template-metaprogramming-expressively/ |
| How to use toString on custom types in C++ | https://www.fluentcpp.com/2017/06/06/using-tostring-custom-types-cpp/ |
| The real difference between struct and class | https://www.fluentcpp.com/2017/06/13/the-real-difference-between-struct-class/ |
| video | https://www.fluentcpp.com/2018/03/02/choose-struct-class/ |
| The Interface Principle in C++ | https://www.fluentcpp.com/2017/06/20/interface-principle-cpp/ |
| How to Flatten Out Nested Switch Statements | https://www.fluentcpp.com/2017/06/27/how-to-collapse-nested-switch-statements/ |
| How to Insulate a Toxic Api from the Rest of Your Code | https://www.fluentcpp.com/2017/06/30/insulating-a-toxic-api-from-the-rest-of-your-code/ |
| Multiple error handling with the optional monad in C++ | https://www.fluentcpp.com/2017/07/04/multiple-error-handling-with-the-optional-monad-in-c/ |
| The Optional Monad In C++, Without The Ugly Stuff | https://www.fluentcpp.com/2017/07/07/optional-monad-cpp-without-ugly-stuff/ |
| Dealing with Multiple Paths with the Vector Monad in C++ | https://www.fluentcpp.com/2017/07/11/dealing-multiple-paths-vector-monad-c/ |
| The Vector Monad In C++, Without The Ugly Stuff | https://www.fluentcpp.com/2017/07/14/the-vector-monad-in-c-without-the-ugly-stuff/ |
| How to Make If Statements More Understandable | https://www.fluentcpp.com/2017/07/21/making-if-statements-understandable/ |
| Do Understandable If Statements Run Slower? | https://www.fluentcpp.com/2017/07/25/understandable-statements-run-slower/ |
| A Summary of the Metaclasses Proposal in C++ | https://www.fluentcpp.com/2017/08/04/metaclasses-cpp-summary/ |
| The C++ Metaclasses Proposal in Less Than 5 Minutes | https://www.fluentcpp.com/2018/03/09/c-metaclasses-proposal-less-5-minutes/ |
| tee – Get Debug Info With Little Impact On Code | https://www.fluentcpp.com/2017/09/29/tee-getting-precious-debug-info-easily/ |
| Function Aliases In C++ | https://www.fluentcpp.com/2017/10/27/function-aliases-cpp/ |
| 10 Halloween code stories that will freak you out | https://www.fluentcpp.com/2017/10/31/halloween-horror-code-stories/ |
| How Unit Tests Help Express Your Code’s Intent | https://www.fluentcpp.com/2017/11/03/unit-tests-express-code-intent/ |
| The Complete Guide to Building Strings In C++: From “Hello, world” Up To Boost Karma | https://www.fluentcpp.com/2017/12/19/build-strings-from-plain-string-up-to-boost-karma/ |
| 7 names we should never see in code | https://www.fluentcpp.com/2017/12/01/7-names-never-see-code/ |
| More tips on naming | https://www.fluentcpp.com/2017/12/15/more-tips-on-naming/ |
| Why expressive code matters | https://www.fluentcpp.com/2017/12/22/expressive-code-matters/ |
| How to emulate the “super” keyword in C++ | https://www.fluentcpp.com/2017/12/26/emulate-super-base/ |
| How to be clear about what your functions return | https://www.fluentcpp.com/2018/01/23/function-return/ |
| The Most Vexing Parse: How to Spot It and Fix It Quickly | https://www.fluentcpp.com/2018/01/30/most-vexing-parse/ |
| Lvalues, Rvalues and their references | https://www.fluentcpp.com/2018/02/06/understanding-lvalues-rvalues-and-their-references/ |
| To RAII or not to RAII, that is the question | https://www.fluentcpp.com/2018/02/13/to-raii-or-not-to-raii/ |
| The right question for the right name | https://www.fluentcpp.com/2018/02/16/right-question-right-name/ |
| On Using Guards In C++ | https://www.fluentcpp.com/2018/02/20/on-using-guards-in-cpp/ |
| Replacing An Else-If Sequence With The Ternary Operator | https://www.fluentcpp.com/2018/02/27/replace-else-if-ternary-operator/ |
| The issues with singletons and how to fix them | https://www.fluentcpp.com/2018/03/06/issues-singletons-signals/ |
| C++ Will No Longer Have Pointers | https://www.fluentcpp.com/2018/04/01/cpp-will-no-longer-have-pointers/ |
| How to Use Tag Dispatching Effectively | https://www.fluentcpp.com/2018/04/27/tag-dispatching/ |
| When to Use Enums And When To Use Tag Dispatching In C++ | https://www.fluentcpp.com/2018/05/01/when-to-use-enums-and-when-to-use-tag-dispatching-in-cpp/ |
| Passing Booleans to an Interface in an Expressive Way | https://www.fluentcpp.com/2018/05/04/passing-booleans-to-an-interface-in-an-expressive-way/ |
| A Concrete Example of Naming Consistency | https://www.fluentcpp.com/2018/05/29/a-concrete-example-of-naming-consistency/ |
| struct and Constructors in C++: an “It’s complicated” Relationship | https://www.fluentcpp.com/2018/06/15/should-structs-have-constructors-in-cpp/ |
| 3 Simple C++17 Features That Will Make Your Code Simpler | https://www.fluentcpp.com/2018/06/19/3-simple-c17-features-that-will-make-your-code-simpler/ |
| The incredible const reference that isn’t const | https://www.fluentcpp.com/2018/07/13/the-incredible-const-reference-that-isnt-const/ |
| How to Construct C++ Objects Without Making Copies | https://www.fluentcpp.com/2018/07/17/how-to-construct-c-objects-without-making-copies/ |
| Simplicity in C++ Code (Podcast) | https://www.fluentcpp.com/2018/07/20/simplicity-in-cpp-code-design-podcast/ |
| How to Convert a String to an int in C++ | https://www.fluentcpp.com/2018/07/24/how-to-convert-a-string-to-an-int-in-c/ |
| How to *Efficiently* Convert a String to an int in C++ | https://www.fluentcpp.com/2018/07/27/how-to-efficiently-convert-a-string-to-an-int-in-c/ |
| Getting Along With The Comma Operator | https://www.fluentcpp.com/2018/07/31/how-to-get-along-with-the-comma-operator/ |
| How to Design Early Returns in C++ (Based on Procedural Programming) | https://www.fluentcpp.com/2018/08/24/how-to-design-early-returns-in-c-based-on-procedural-programming/ |
| Modern C++: 7 Ways to Fake It Until You Have It | https://www.fluentcpp.com/2018/08/31/modern-cpp-fake-it-until-you-have-it/ |
| Function Poisoning in C++ | https://www.fluentcpp.com/2018/09/04/function-poisoning-in-cpp/ |
| How to Deal with Values That Are Both Input and Output | https://www.fluentcpp.com/2018/09/07/input-output-values/ |
| How to Write Simple Code to Accomplish Complex Tasks | https://www.fluentcpp.com/2018/09/11/how-to-write-simple-code-to-accomplish-complex-tasks/ |
| “auto to stick” and changing your style | https://www.fluentcpp.com/2018/09/28/auto-stick-changing-style/ |
| A Case Where Using Auto Leads to Undefined Behaviour | https://www.fluentcpp.com/2018/10/30/case-where-auto-leads-to-undefined-behaviour/ |
| Pointers, References and Optional References | https://www.fluentcpp.com/2018/10/02/pointers-references-optional-references-cpp/ |
| Why Optional References Didn’t Make It In the C++ Standard | https://www.fluentcpp.com/2018/10/05/pros-cons-optional-references/ |
| To DRY or not to DRY? | https://www.fluentcpp.com/2018/11/13/to-dry-or-not-to-dry/ |
| Deprecating and Deleting Functions in C++ | https://www.fluentcpp.com/2018/11/20/deprecating-and-deleting-functions-in-cpp/ |
| Named arguments in C++ | https://www.fluentcpp.com/2018/12/14/named-arguments-cpp/ |
| Generalizing Unordered Named Arguments | https://www.fluentcpp.com/2019/03/22/generalizing-unordered-named-arguments/ |
| How to Design Function Parameters That Make Your Interfaces Easy To Use (1/3) | https://www.fluentcpp.com/2018/11/23/function-parameters-making-interfaces-easy-to-use/ |
| How to Design Function Parameters That Make Your Interfaces Easy To Use (2/3) | https://www.fluentcpp.com/2018/11/27/design-function-parameters-make-interfaces-easy-use-23/ |
| How to Design Function Parameters That Make Your Interfaces Easy To Use (3/3) | https://www.fluentcpp.com/2018/11/30/function-parameters-3/ |
| An Extraterrestrial Guide to C++ Formatting | https://www.fluentcpp.com/2018/12/04/an-extraterrestrial-guide-to-c-formatting/ |
| A Simple Timer in C++ | https://www.fluentcpp.com/2018/12/28/timer-cpp/ |
| TODO_BEFORE(): A Cleaner Codebase for 2019 | https://www.fluentcpp.com/2019/01/01/todo_before-clean-codebase-2019/ |
| Functional Programming Is Not a Silver Bullet | https://www.fluentcpp.com/2019/01/04/functional-programming-is-not-a-silver-bullet/ |
| RestMyCase: A C++ Library for Formatting String Cases | https://www.fluentcpp.com/2019/01/08/restmycase-a-c-library-for-formatting-string-cases/ |
| The Pitfalls of Aliasing Pointers in Modern C++ | https://www.fluentcpp.com/2019/01/22/pitfalls-of-aliasing-a-pointer-in-modern-cpp/ |
| for_each_arg: Applying a Function to Each Argument of a Function in C++ | https://www.fluentcpp.com/2019/03/05/for_each_arg-applying-a-function-to-each-argument-of-a-function-in-cpp/ |
| 10 Code Smells a Static Analyser Can Locate in a Codebase | https://www.fluentcpp.com/2019/03/26/10-code-smells-a-static-analyser-can-locate-in-a-codebase/ |
| How to Emulate the Spaceship Operator Before C++20 with CRTP | https://www.fluentcpp.com/2019/04/09/how-to-emulate-the-spaceship-operator-before-c20-with-crtp/ |
| Compiler-generated Functions, Rule of Three and Rule of Five | https://www.fluentcpp.com/2019/04/19/compiler-generated-functions-rule-of-three-and-rule-of-five/ |
| The Rule of Zero in C++ | https://www.fluentcpp.com/2019/04/23/the-rule-of-zero-zero-constructor-zero-calorie/ |
| How to Write Safe and Expressive Multi-Threaded Code in C++11 | https://www.fluentcpp.com/2019/04/26/how-to-write-safe-and-expressive-multi-threaded-code-in-cpp11/ |
| The Common Vocabulary of Software Developers | https://www.fluentcpp.com/2019/04/30/common-vocabulary-software-developers/ |
| Curried objects in C++ | https://www.fluentcpp.com/2019/05/03/curried-objects-in-cpp/ |
| How to output strings separated by commas in C++ (and other mutable curried objects) | https://www.fluentcpp.com/2019/05/07/output-strings-separated-commas-cpp/ |
| The Dailies: a new way to learn at work | https://www.fluentcpp.com/2017/04/04/the-dailies-a-new-way-to-learn-at-work/ |
| Spread Knowledge in Your Company With Your “Daily C++” | https://www.fluentcpp.com/2017/09/14/become-recognized-cpp-skills-dailies/ |
| 50 People’s Opinions About How To Get Better As A Software Developer | https://www.fluentcpp.com/2017/02/27/50-people-opinions-about-how-to-get-better-as-a-software-developer/ |
| 7 Ways to Get Better at C++ During this Summer | https://www.fluentcpp.com/2017/06/23/7-ways-better-cpp-summer/ |
| What Books to Read to Get Better In C++ | https://www.fluentcpp.com/2017/07/28/what-books-to-read-to-get-better-at-c/ |
| CppCast: A Show For All C++ Developers | https://www.fluentcpp.com/2017/09/19/cppcast-show-cpp-developer/ |
| Getting inspired by good code | https://www.fluentcpp.com/2017/11/14/getting-inspired-by-good-code/ |
| How to use bad code to learn how to write great code | https://www.fluentcpp.com/2017/11/21/using-bad-code-learn-write-great-code/ |
| 5 Tips to Find Your Way Around A Legacy Codebase | https://www.fluentcpp.com/2018/01/19/5-tips-find-way-around-legacy-codebase/ |
| 7 good resolutions to write better code this year | https://www.fluentcpp.com/2018/01/01/7-good-resolutions-to-write-better-code-this-year/ |
| 10 Techniques That Will Make You Understand Other People’s Code Better | https://www.fluentcpp.com/2018/06/05/10-techniques-that-will-make-you-understand-other-peoples-code-better/ |
| Triple trip report from ACCU, C++ Russia and C++Now 2018 | https://www.fluentcpp.com/2018/06/08/triple-trip-report-from-accu-c-russia-and-cnow/ |
| 7 More Ways to Get Better at C++ This Summer (2018 Edition) | https://www.fluentcpp.com/2018/06/29/7-more-ways-to-get-better-at-c-this-summer-2018-edition/ |
| How I Applied Coding Best Practices to Improve My Daily Life | https://www.fluentcpp.com/2019/01/11/applying-good-code-practices-everyday-life/ |
| The Legacy Code Programmer’s Toolbox is Out | https://www.fluentcpp.com/2019/02/01/the-legacy-code-programmers-toolbox-is-out/ |
| CPPP | https://www.fluentcpp.com/2019/04/12/cppp/ |
| Strongly typed constructors | https://www.fluentcpp.com/2016/12/05/named-constructors/ |
| Strong types for strong interfaces | https://www.fluentcpp.com/2016/12/08/strong-types-for-strong-interfaces/ |
| Passing strong types by reference | https://www.fluentcpp.com/2017/03/06/passing-strong-types-reference-revisited/ |
| Strong lambdas: strong typing over generic types | https://www.fluentcpp.com/2017/02/20/strong-lambdas-strong-generic-types/ |
| Good news: strong types are (mostly) free in C++ | https://www.fluentcpp.com/2017/05/05/news-strong-types-are-free/ |
| Inheriting functionalities from the underlying type | https://www.fluentcpp.com/2017/05/23/strong-types-inheriting-functionalities-from-underlying/ |
| Making strong types hashable | https://www.fluentcpp.com/2017/05/30/implementing-a-hash-function-for-strong-types/ |
| Strong Types For Strong Interfaces: my talk at Meeting C++ | https://www.fluentcpp.com/2018/02/02/strong-types-strong-interfaces-talk-meeting-cpp/ |
| Converting strong units to one another | https://www.fluentcpp.com/2017/05/26/strong-types-conversions/ |
| Metaclasses, the Ultimate Answer to Strong Typing in C++? | https://www.fluentcpp.com/2017/08/08/metaclasses-ultimate-answer-strong-typing-c/ |
| Calling functions and methods on strong types | https://www.fluentcpp.com/2017/11/07/calling-functions-methods-strong-types/ |
| Using Strong Types to Return Multiple Values | https://www.fluentcpp.com/2017/11/10/strong-types-multiple-return-values/ |
| Making strong types implicitly convertible | https://www.fluentcpp.com/2018/01/05/making-strong-types-implicitly-convertible/ |
| Strong templates | https://www.fluentcpp.com/2018/01/09/strong-templates/ |
| Strong optionals | https://www.fluentcpp.com/2018/01/16/strong-optionals/ |
| Getting the Benefits of Strong Typing in C++ at a Fraction of the Cost | https://www.fluentcpp.com/2018/04/06/strong-types-by-struct/ |
| Default parameters in C++: the facts (including the secret ones) | https://www.fluentcpp.com/2018/08/03/default-parameters-facts/ |
| Should I overload or use default parameters ? | https://www.fluentcpp.com/2018/08/07/should-i-use-overloads-or-default-parameters/ |
| Defaulted | https://www.fluentcpp.com/2018/08/14/defaulted-helper-work-around-constraints-default-parameters/ |
| : a helper to work around default parameters constraints | https://www.fluentcpp.com/2018/08/14/defaulted-helper-work-around-constraints-default-parameters/ |
| Integrating mocking with default parameters | https://www.fluentcpp.com/2018/08/21/default-parameters-mocking/ |
| Default Parameters With Default Template Type Parameters | https://www.fluentcpp.com/2018/08/10/template-default-arguments-application-smart-iterators/ |
| How to Design Function Parameters That Make Interfaces Easier to Use (1/3) | https://www.fluentcpp.com/2018/11/23/function-parameters-making-interfaces-easy-to-use/ |
| How to Design Function Parameters That Make Interfaces Easier to Use (2/3) | https://www.fluentcpp.com/2018/11/27/design-function-parameters-make-interfaces-easy-use-23/ |
| How to Design Function Parameters That Make Interfaces Easier to Use (3/3) | https://www.fluentcpp.com/2018/11/30/function-parameters-3/ |
| Smart developers use smart pointers – Smart pointer basics | https://www.fluentcpp.com/2017/08/22/smart-developers-use-smart-pointers-smart-pointers-basics/ |
| Smart developers use smart pointers – Knowing your smart pointers to express your intentions | https://www.fluentcpp.com/2017/08/25/knowing-your-smart-pointers/ |
| Smart developers use smart pointers – Custom deleters | https://www.fluentcpp.com/2017/08/29/custom-deleters/ |
| Smart developers use smart pointers – How to Make Custom Deleters More Expressive | https://www.fluentcpp.com/2017/09/01/make-custom-deleters-expressive/ |
| Smart developers use smart pointers – Changing deleters during the life of a unique_ptr | https://www.fluentcpp.com/2017/09/05/changing-deleters-during-the-life-of-a-unique_ptr/ |
| Smart developers use smart pointers – How to implement the pimpl idiom by using unique_ptr | https://www.fluentcpp.com/2017/09/22/make-pimpl-using-unique_ptr/ |
| Smart developers use smart pointers – Polymorphic clones in modern C++ | https://www.fluentcpp.com/2017/09/08/make-polymorphic-copy-modern-cpp/ |
| Smart developers use smart pointers – How to return smart pointers AND use covariance | https://www.fluentcpp.com/2017/09/12/how-to-return-a-smart-pointer-and-use-covariance/ |
| How to Transfer unique_ptrs From a Set to Another Set | https://www.fluentcpp.com/2018/11/06/how-to-transfer-unique_ptrs-from-a-set-to-another/ |
| A Free Ebook on C++ Smart Pointers | https://www.fluentcpp.com/2018/12/25/free-ebook-smart-pointers/ |
| Return value optimizations | https://www.fluentcpp.com/2016/11/28/return-value-optimizations/ |
| Good news: strong types are (mostly) free in C++ | https://www.fluentcpp.com/2017/05/05/news-strong-types-are-free/ |
| Want Both Expressive And Fast Code? Provide A Minimal Interface | https://www.fluentcpp.com/2017/12/05/both-expressive-and-fast-code-provide-minimal-interface/ |
| STL learning resource | https://www.fluentcpp.com/stl-learning-resource/ |
| set_aggregate, set_segregate: higher-level algorithms on sets | https://www.fluentcpp.com/2017/02/09/set-aggregate-set-seggregate-higher-level-algorithms-on-sets/ |
| A smart iterator for inserting into a sorted container in C++ | https://www.fluentcpp.com/2017/03/17/smart-iterators-for-inserting-into-sorted-container/ |
| A smart iterator for aggregating data into a map in C++ | https://www.fluentcpp.com/2017/03/21/smart-iterator-aggregating-new-elements-existing-ones-map-set/ |
| Smart output iterators | https://www.fluentcpp.com/2017/11/28/output-iterator-adaptors-symmetry-range-adaptors/ |
| The importance of knowing STL s | https://www.fluentcpp.com/2017/01/05/the-importance-of-knowing-stl-algorithms/ |
| Custom comparison, equality and equivalence with the STL | https://www.fluentcpp.com/2017/02/16/custom-comparison-equality-equivalence-stl/ |
| STL Function objects: Stateless is Stressless | https://www.fluentcpp.com/2017/01/23/stl-function-objects-stateless-is-stressless/ |
| Ranges: the STL to the Next Level | https://www.fluentcpp.com/2017/01/12/ranges-stl-to-the-next-level/ |
| Introduction to the Ranges Library | https://www.fluentcpp.com/2018/02/09/introduction-ranges-library/ |
| Functors are not dead: the double functor trick | https://www.fluentcpp.com/2017/03/09/functors-are-not-dead-the-double-functor-trick/ |
| Inserting several elements into an STL container efficiently | https://www.fluentcpp.com/2017/03/28/inserting-several-elements-into-an-stl-container/ |
| The design of the STL | https://www.fluentcpp.com/2017/04/18/the-design-of-the-stl/ |
| How to split a string in C++ | https://www.fluentcpp.com/2017/04/21/how-to-split-a-string-in-c/ |
| Better understand ranges with the new Cartesian Product adaptor | https://www.fluentcpp.com/2017/04/14/understand-ranges-better-with-the-new-cartesian-product-adaptor/ |
| Move iterators: where the STL meets Move semantics | https://www.fluentcpp.com/2017/04/25/move-iterators/ |
| is_transparent: How to search a C++ set with another type than its key | https://www.fluentcpp.com/2017/06/09/search-set-another-type-key/ |
| How to Use Overloaded Functions With The STL | https://www.fluentcpp.com/2017/08/01/overloaded-functions-stl/ |
| How to Handle Multiple Types in Max Without A Cast | https://www.fluentcpp.com/2017/08/18/handle-multiple-types-max-without-cast/ |
| Size and capacity | https://www.fluentcpp.com/2017/10/13/size-capacity-stl-containers/ |
| How the insert iterator really works | https://www.fluentcpp.com/2017/10/06/stl-inserter-iterators-work/ |
| Think of function objects as functions rather than objects | https://www.fluentcpp.com/2017/10/20/think-function-objects-functions-rather-objects/ |
| How to Use the STL With Legacy Output Collections | https://www.fluentcpp.com/2017/11/24/how-to-use-the-stl-in-legacy-code/ |
| Is std::for_each obsolete? | https://www.fluentcpp.com/2018/03/30/is-stdfor_each-obsolete/ |
| Make Your Containers Follow the Conventions of the STL | https://www.fluentcpp.com/2018/04/24/following-conventions-stl/ |
| How to pass a polymorphic object to an STL algorithm | https://www.fluentcpp.com/2018/04/17/pass-polymorphic-object-stl-algorithm/ |
| Which One Is Better: Map of Vectors, or Multimap? | https://www.fluentcpp.com/2018/04/10/maps-vectors-multimap/ |
| std::iterator is deprecated: Why, What It Was, and What to Use Instead | https://www.fluentcpp.com/2018/05/08/std-iterator-deprecated/ |
| How to Remove Elements from a Sequence Container in C++ | https://www.fluentcpp.com/2018/09/14/how-to-remove-elements-from-a-sequence-container/ |
| How to Remove Pointers from a Vector in C++ | https://www.fluentcpp.com/2018/09/18/how-to-remove-pointers-from-a-vector-in-cpp/ |
| How to Remove Elements from an Associative Container in C++ | https://www.fluentcpp.com/2018/09/21/remove-elements-associative-container-cpp/ |
| How to Remove Duplicates from an Associative Container in C++ | https://www.fluentcpp.com/2018/09/25/remove-duplicates-associative-container-cpp/ |
| How to Access the Index of the Current Element in a Modern For Loop | https://www.fluentcpp.com/2018/10/26/how-to-access-the-index-of-the-current-element-in-a-modern-for-loop/ |
| How to Transfer unique_ptrs From a Set to Another Set | https://www.fluentcpp.com/2018/11/06/how-to-transfer-unique_ptrs-from-a-set-to-another/ |
| How to Retrieve the Firsts from a Collection of Pairs | https://www.fluentcpp.com/2018/11/09/retrieve-firsts-collection-pairs/ |
| Why You Should Use std::for_each over Range-based For Loops | https://www.fluentcpp.com/2019/02/07/why-you-should-use-stdfor_each-over-range-based-for-loops/ |
| Overview of std::map’s Insertion / Emplacement Methods in C++17 | https://www.fluentcpp.com/2018/12/11/overview-of-std-map-insertion-emplacement-methods-in-cpp17/ |
| The SoA Vector – Part 1: Optimizing the Traversal of a Collection | https://www.fluentcpp.com/2018/12/18/the-soa-vector-part-1-optimizing-the-traversal-of-a-collection/ |
| The SoA Vector | https://www.fluentcpp.com/2018/12/21/an-soa-vector-with-an-stl-container-interface-in-cpp/ |
| – | https://www.fluentcpp.com/2018/12/18/the-soa-vector-part-1-optimizing-the-traversal-of-a-collection/ |
| Part 2: Implementation in C++ | https://www.fluentcpp.com/2018/12/21/an-soa-vector-with-an-stl-container-interface-in-cpp/ |
| Indexing Data Structures with C++ Scoped Enums | https://www.fluentcpp.com/2019/01/15/indexing-data-structures-with-c-scoped-enums/ |
| The Terrible Problem Of Incrementing A Smart Iterator | https://www.fluentcpp.com/2019/02/12/the-terrible-problem-of-incrementing-a-smart-iterator/ |
| STL Algorithms on Tuples | https://www.fluentcpp.com/2019/03/08/stl-algorithms-on-tuples/ |
| An Alternative Design to Iterators and Ranges, Using std::optional | https://www.fluentcpp.com/2019/04/16/an-alternative-design-to-iterators-and-ranges-using-stdoptional/ |
| The World Map of the STL algorithms | http://fluentcpp.com/getTheMap |
| 105 STL Algorithms in Less Than an Hour | https://www.fluentcpp.com/2018/07/10/105-stl-algorithms-in-less-than-an-hour/ |
| Know your algorithms: algos on sets | https://www.fluentcpp.com/2017/01/09/know-your-algorithms-algos-on-sets/ |
| video | https://www.fluentcpp.com/2017/12/29/stl-algorithms-sets/ |
| How is std::set_difference implemented? | https://www.fluentcpp.com/2018/01/12/how-is-stdset_difference-implemented/ |
| How to (std::)find something efficiently with the STL | https://www.fluentcpp.com/2017/01/16/how-to-stdfind-something-efficiently-with-the-stl/ |
| Searching when you have access to an STL container | https://www.fluentcpp.com/2017/01/26/searching-an-stl-container/ |
| The searching s the STL holds secret | https://www.fluentcpp.com/2017/02/02/searching-algorithms-stl-holds-secret/ |
| std::transform, a central algorithm | https://www.fluentcpp.com/2017/02/13/transform-central-algorithm/ |
| Predicates on ranges with the STL | https://www.fluentcpp.com/2017/02/23/predicates-on-ranges-with-the-stl/ |
| Filling s | https://www.fluentcpp.com/2017/03/23/filling-algorithms-stl/ |
| Mins and maxes | https://www.fluentcpp.com/2017/04/11/mins-maxes-stl/ |
| Sorting with the STL | https://www.fluentcpp.com/2017/10/03/sorting-stl-algorithms/ |
| Partitioning | https://www.fluentcpp.com/2017/10/10/partitioning-with-the-stl/ |
| (std::)Accumulate Your Knowledge On Algorithms | https://www.fluentcpp.com/2017/10/17/stdaccumulate-your-knowledge-on-algorithms/ |
| How to Reorder Collections With the STL | https://www.fluentcpp.com/2018/04/20/ways-reordering-collection-stl/ |
| Moving Ranges Around with STL Algorithms | https://www.fluentcpp.com/2018/04/13/moving-ranges-stl/ |
| s on heaps | https://www.fluentcpp.com/2018/03/16/heaps-cpp-stl/ |
| How to Remove Elements from a Sequence Container in C++ | https://www.fluentcpp.com/2018/09/14/how-to-remove-elements-from-a-sequence-container/ |
| The BooSTL Algorithms: Boost Algorithms That Extend the STL (1/3) | https://www.fluentcpp.com/2019/03/29/the-boostl-algorithms-boost-algorithms-that-extend-the-stl-1/ |
| The BooSTL Algorithms: Boost Algorithms That Extend the STL (2/3) | https://www.fluentcpp.com/2019/04/02/the-boostl-algorithms-boost-algorithms-that-extend-the-stl-2/ |
| The BooSTL Algorithms: Boost Algorithms That Extend the STL (3/3) | https://www.fluentcpp.com/2019/04/05/the-boostl-algorithms-boost-algorithms-that-extend-the-stl-3/ |
| Smart Output Iterators: A Symmetrical Approach to Range Adaptors | https://www.fluentcpp.com/2017/11/28/output-iterator-adaptors-symmetry-range-adaptors/ |
| How Smart Output Iterators Avoid the TPOIASI | https://www.fluentcpp.com/2019/02/15/how-smart-output-iterators-fare-with-the-terrible-problem-of-incrementing-a-smart-iterator/ |
| Unzipping a Collection of Tuples with the “unzip” Smart Output Iterator | https://www.fluentcpp.com/2019/02/19/unzipping-collections-of-tuples-with-smart-output-iterators/ |
| Applying Several Transforms in One Pass on a Collection | https://www.fluentcpp.com/2019/02/22/applying-several-transforms-in-one-pass-on-a-collection/ |
| Is Unzip a Special Case of Transform? | https://www.fluentcpp.com/2019/02/26/is-unzip-a-special-case-of-transform/ |
| Partitioning Data with Output Iterators in C++ | https://www.fluentcpp.com/2019/03/01/partitioning-data-with-output-iterators-in-cpp/ |
| The Demultiplexer Iterator: Routing Data to Any Numbers of Outputs | https://www.fluentcpp.com/2019/03/12/the-demultiplexer-iterator-routing-data-to-any-numbers-of-outputs/ |
| Performance benchmark: Ranges VS STL algorithms VS Smart output iterators | https://www.fluentcpp.com/2019/03/15/performance-benchmark-ranges-vs-stl-algorithms-vs-smart-output-iterators/ |
| Heaps Basics | https://www.fluentcpp.com/2018/03/13/heaps-priority-queues-stl-part-1/ |
| The STL Algorithms on Heaps | https://www.fluentcpp.com/2018/03/16/heaps-cpp-stl/ |
| Queues and Priority Queues | https://www.fluentcpp.com/2018/03/20/heaps-and-priority-queues-in-c-part-3-queues-and-priority-queues/ |
| What Heaps Can Do That Priority Queues Don’t | https://www.fluentcpp.com/2018/03/23/3428/ |
| Introduction to Boost Phoenix | https://www.fluentcpp.com/2018/01/26/introduction-boost-phoenix/ |
| Introduction to Boost Karma | https://www.fluentcpp.com/2018/02/23/introduction-boost-karma/ |
| 3 Things That Counting Words Can Reveal on Your Code | https://www.fluentcpp.com/2018/10/09/3-things-that-counting-words-can-reveal-on-your-code/ |
| Word Counting in C++: Implementing a Simple Word Counter | https://www.fluentcpp.com/2018/10/12/word-counting-cpp-simple-word-counter/ |
| Word Counting in C++: Extracting words from camelCase symbols | https://www.fluentcpp.com/2018/10/16/word-counting-cpp-camelcase/ |
| Word Counting in C++: Parametrizing the Type of Case | https://www.fluentcpp.com/2018/10/19/word-counting-in-cpp-parametrizing-the-type-of-case/ |
| Word Counting in C++: Computing the Span of a Word | https://www.fluentcpp.com/2018/10/23/word-counting-span/ |
| The “Extract Interface” refactoring, at compile time | https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/ |
| The Curiously Recurring Template Pattern (CRTP) | https://www.fluentcpp.com/2017/05/12/curiously-recurring-template-pattern/ |
| What the Curiously Recurring Template Pattern can bring to your code | https://www.fluentcpp.com/2017/05/16/what-the-crtp-brings-to-code/ |
| An implementation helper for the Curiously Recurring Template Pattern | https://www.fluentcpp.com/2017/05/19/crtp-helper/ |
| Expressive C++ Template Metaprogramming | https://www.fluentcpp.com/2017/06/02/write-template-metaprogramming-expressively/ |
| Template Partial Specialization In C++ | https://www.fluentcpp.com/2017/08/11/how-to-do-partial-template-specialization-in-c/ |
| Function template Partial Specialization In C++ | https://www.fluentcpp.com/2017/08/15/function-templates-partial-specialization-cpp/ |
| Mixin Classes: The Yang of the CRTP | https://www.fluentcpp.com/2017/12/12/mixin-classes-yang-crtp/ |
| How to Make SFINAE Pretty – Part 1: What SFINAE Brings to Code | https://www.fluentcpp.com/2018/05/15/make-sfinae-pretty-1-what-value-sfinae-brings-to-code/ |
| How to Make SFINAE Pretty – Part 2: the Hidden Beauty of SFINAE | https://www.fluentcpp.com/2018/05/18/make-sfinae-pretty-2-hidden-beauty-sfinae/ |
| How to Turn a Hierarchy of Virtual Methods into a CRTP | https://www.fluentcpp.com/2018/05/22/how-to-transform-a-hierarchy-of-virtual-methods-into-a-crtp/ |
| Variadic CRTP: An Opt-in for Class Features, at Compile Time | https://www.fluentcpp.com/2018/06/22/variadic-crtp-opt-in-for-class-features-at-compile-time/ |
| Variadic CRTP Packs: From Opt-in Skills to Opt-in Skillsets | https://www.fluentcpp.com/2018/06/26/variadic-crtp-packs-from-opt-in-skills-to-opt-in-skillsets/ |
| How to Reduce the Code Bloat of a Variadic CRTP | https://www.fluentcpp.com/2018/07/03/how-to-reduce-the-code-bloat-of-a-variadic-crtp/ |
| Default Parameters With Default Template Type Parameters | https://www.fluentcpp.com/2018/08/10/template-default-arguments-application-smart-iterators/ |
| Removing Duplicates in C++ CRTP Base Classes | https://www.fluentcpp.com/2018/08/28/removing-duplicates-crtp-base-classes/ |
| How to Store a Variable Number of Objects Known at Compile Time in C++ | https://www.fluentcpp.com/2018/11/02/variable-number-compile-time/ |
| How to Define A Variadic Number of Arguments of the Same Type – Part 1 | https://www.fluentcpp.com/2019/01/25/variadic-number-function-parameters-type/ |
| How to Define A Variadic Number of Arguments of the Same Type – Part 2 | https://www.fluentcpp.com/2019/01/29/how-to-define-a-variadic-number-of-arguments-of-the-same-type-part-2/ |
| How to Define A Variadic Number of Arguments of the Same Type – Part 3 | https://www.fluentcpp.com/2019/02/05/how-to-define-a-variadic-number-of-arguments-of-the-same-type-part-3/ |
| Can you write expressive code? – Christmas break challenge | https://www.fluentcpp.com/2016/12/19/can-you-write-expressive-code-christmas-break-challenge/ |
| Results | https://www.fluentcpp.com/2016/12/19/can-you-write-expressive-code-christmas-break-challenge/ |
| The Pi Day Challenge for the Most Expressive Code in C++ | https://www.fluentcpp.com/2017/03/13/pi-day-challenge-for-the-most-expressive-code-results/ |
| Results | https://www.fluentcpp.com/2017/03/13/pi-day-challenge-for-the-most-expressive-code-results/ |
| Can You Wield Function Overloading Like Jon Snow Wields Longclaw? | https://www.fluentcpp.com/2017/07/18/can-you-wield-cpp-function-overloading-like-jon-snow-wields-longclaw/ |
| Results | https://www.fluentcpp.com/2017/08/01/overloaded-functions-stl/ |
| The Expressive C++17 Coding Challenge | https://www.fluentcpp.com/2017/09/25/expressive-cpp17-coding-challenge/ |
| Results | https://www.fluentcpp.com/2017/10/23/results-expressive-cpp17-coding-challenge/ |
| The Most Beautiful Piece of Code That Prints 42 | https://www.fluentcpp.com/2018/05/11/the-most-beautiful-piece-of-code-that-prints-42/ |
| Results | https://www.fluentcpp.com/2018/05/25/celebration-of-towel-day-with-your-awesome-pieces-of-code-that-print-42/ |
| About me | https://www.fluentcpp.com/about-me/ |
| Becoming Fluent in C++ | https://www.fluentcpp.com/2016/11/04/becoming-fluent-in-cpp/ |
| How I came to create Fluent C++ | https://www.fluentcpp.com/2016/11/15/how-i-came-to-create-fluent-c/ |
| Fluent C++ Is 1 Year Old | https://www.fluentcpp.com/2017/11/17/fluent-cpp-1-year-old/ |
| Buy me a beer for Fluent C++ | https://www.fluentcpp.com/2018/03/27/patreon-fluent-cpp/ |
| Fluent C++ is open to guest posting | https://www.fluentcpp.com/2018/06/01/fluent-cpp-is-now-officially-open-to-guest-posting/ |
| Fluent C++ is 2 Years Old | https://www.fluentcpp.com/2018/11/16/fluent-cpp-is-2-years-old/ |
| Anna | https://www.fluentcpp.com/2019/03/19/anna/ |
| CC BY-NC-SA 4.0 | https://creativecommons.org/licenses/by-nc-sa/4.0/ |
| | https://www.fluentcpp.com/store |
| https://twitter.com/JoBoccara |
| Thrive Themes | https://www.thrivethemes.com |
| WordPress | https://www.wordpress.org |
Robots: index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1