Customization Point Design in C++11 and Beyond

(Disclaimer: here be esoteric language wonkery. Abandon all hope.) If you read or write Generic-code-with-a-capitol-‘G’, you may have written or seen code like this: using std::swap; swap( a, b ); The first line brings std::swap into consideration, and the second Continue reading Customization Point Design in C++11 and Beyond

Range Concepts, Part 4 of 4: To Infinity And Beyond

Last time, I introduced a new concept, Iterable, and showed how it solved many of the problems with pair-of-iterator-style ranges. This time around, I’m going to extend Iterable in small ways to make programming with infinite ranges safer and more Continue reading Range Concepts, Part 4 of 4: To Infinity And Beyond

Range Concepts, Part 3 of 4: Introducing Iterables

In the last two blog posts, I describes the challenges I’ve encountered while building a next-generation range library. In this post, I’ll sketch for you my proposed solution: refinements of the range concepts that allow delimited, infinite, and pair-o’-iterator-style ranges Continue reading Range Concepts, Part 3 of 4: Introducing Iterables