Meandering Through C++ to Create ranges::to

See how I meandered through writing a version of ranges::to because I was impatient for the GCC 14 version. It had to be easy, right? After all, it is just copying pipeline elements to a container. Ha! Ha! No.

This trek encounters concepts, if constexpr, and containers that are copyable and others that are not. Eventually, an encounter with a approach, which I can only reveal during the talk, solved the copy problem for most containers. But then there are sets and queues. Finally, wrangling with range_adaptor_closure to work as the pipeline's endpoint was, well, interesting.

Why is ranges::to important? It is easier to use than other methods of invoking pipelines.

The talk is code intensive to illustrate all the steps to demonstrate the development process and the solution.

Image

Rudyard Merriam

Rud Merriam is a retired software developer, having lived through the spaghetti, structured programming, and object-oriented development paradigms. He's now trying to figure out functional programming and the ranges library.

He wrote his first FORTRAN IV in 1968 and his first C++ in 1990 with Borland's Turbo C++. Along the way, he developed computers that measured flow in real pipelines.

More recently, he has been writing about C++ on Medium.com and Linkedin. He evangelized C++ for embedded systems on Hackaday.com.

When

July 20-23, 2025

LinkedIn

CppNorth Group