Neoclassical C++: segmented iterators revisited

2 days ago (boostedcpp.net)

Very interesting, this is the first time I hear about segmented iterators and hierarchical algorithms.

I faced a similar issue myself when implementing a chunked vector a la `std::deque`, but opted for callback-based internal iteration, i.e.

    void ChunkedVector::forEach(auto&& f)
    {
        for (auto& chunk : chunks)
            for (auto& item : chunk) 
                if (f(item) == ControlFlow::Break)
                    return;
    }

Where `ControlFlow` is just:

    enum class [[nodiscard]] ControlFlow : bool
    {
        Continue,
        Break
    };

This is massively simpler to implement, and can model simpler algorithms such as `for_each`, `fill`, `transform`, `count`, `accumulate`.

It's sometimes inferior in terms of ergonomics, and cannot express more complicated algorithms or iteration patterns (e.g. partial range, going backwards), but so far it has served me well.

Just something to consider if implementation simplicity is the priority and there's no need for a very generic suite of algorithms.

Genuine question, where does te average developer go to learn CPP in 2026? Despite the usual complaints it’s alive and well and Rust will not replace it.

CPP has become infinitely easier to write for me. That’s an exact figure, my total output of usable CPP lines was zero prior to LLMs.

I do however need to at least be able to write basic CPP to evaluate the code I’m generating. It’s just so hard to comb through all the bad and over complicated code out there, bad advice and outdated opinions.

  • Read Bjarne Stroustrup’s intro to programming book and then read other books.

    find more books from additional readings sections of books you end up liking.

    Don’t use LLM for learning as it is useless compared to searching amazon or doing general web search to find books.

    You can recursively learn anything you need by finding books about needed subjects.

  • Most important thing is to use material (or tell LLMs) that use C++20.

    If you don't need compile time techniques (templates, concepts, consteval, context, ...) then C++17 might be acceptable, too.

    Modern C++ is pretty nice to write and compile errors are sane as long as you utilize concepts where it makes sense.

  • > Despite the usual complaints it’s alive and well and Rust will not replace it.

    to some degree it is already being replaced:

    https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj...

    source: https://blog.google/security/rust-in-android-move-fast-fix-t...

    • Why does any mention of C++ nowadays turn into a Rust debate? These can coexist even in a single project via C ABI. Also, despite the vast syntax and semantic differences, an experienced dev will be able to apply most of their knowledge from one to the other.

      12 replies →

    • > We adopted Rust for its security and are seeing a 1000x reduction in memory safety vulnerability density compared to Android’s C and C++ code.

      This is a pretty poor post. It’s impossible to see what exactly they’re comparing but they seem to be comparing post LLM code to pre LLM code.

      2 replies →

  • Since you are already making use of LLMs, you could also ask questions about the code that it produces. I've been asking Google's AI overview and Deepseek while doing my first ever C++26 project, usually not to produce any code but to give advice or list possible approaches to implementing a feature. It's a very slow path, to the point that my project has currently more git commits than lines of code, but I'm convinced that it will pay off in the long run.

>"where does te average developer go to learn CPP "

ain't nothing better than books and doing some real project