Pipes, pipes and yet more pipes

https://www.cppstories.com/2024/pipe-operator/

Is C++ becoming/is too complicated?
Part of the complicated nature of C++ has been the very fast turn-around for new versions. 3 years is too fast for letting much of the new features ferment and coalesce into something most programmers use on even a semi-regular basis.

I know there are features of C++ even from previous versions earlier than C++20/23 I don't use and likely never will. Many of the features don't have a good explanation of what they can do other than highly technical verbiage that makes my brain go numb and my eyes glaze over.

Take more time so C++ users can learn what the new features offer, IMO at a minimum a 5-6 year cycle.

I don't want to see C++ go stagnant and 3rd party libraries do the journeyman work of extending what can be done without the effort of each programmer writing their own "solution". That will lead to eventual obsolescence.
Is C++ becoming/is too complicated?

It already is complicated, and pipe operators, isn't that something for scripting languages?
It makes no sense for language like C++
Personally I would rather have a complex system that doesn't have limits per se, rather than a simple system that is really restricted. If there is a new feature, then someone is bound to be using it, and that has made their life easier. Also, I think developers have more ability to get to grips with new features, because there are lots of people working full time; as opposed to hobbyists like me who might plug away for a few hours here and there.

When I think of C++, I am not only thinking of standard C++, but all of the Boost library as well, plus any other library that may come in handy. So all that is one giant system.

I guess C++ has always been fairly complex compared with say C, where one would use a function from somewhere, or write one; with the complication being different data structures, hopefully which would have been in a library. C++ is more complex because of the multi paradigms, which lead to design patterns and all kinds of tips and tricks.

Maybe some of the more esoteric features of C++ are handy for library writers, like Template Meta Programming (TMP) for instance.

It seems to me that the overall goal for C++ is to be able to write more expressive code without sacrificing speed. If a new feature does that, then bring it on !!!
It already is complicated, and pipe operators, isn't that something for scripting languages?
It makes no sense for language like C++


C++ has pipes in the ranges library; range adapters can be composed into pipelines.

I saw a you tube video where the example was making a banana cake. The recipe was a ranges pipeline that checked one by one whether ingredients were available, the flour was sifted, and the bananas were ripe.

The pipelines give the ability to do functional programming, which IMO gives the ability to be more expressive.
It seems to me that the overall goal for C++ is to be able to write more expressive code without sacrificing speed. If a new feature does that, then bring it on !!!

From early on C++ has -- with (operator) overloading -- tried to make

A = B * C + D;

a possible syntax. That "user" can write in "intuitive/expressive" syntax, like they would write in problem domain (here math?). This naturally means that somebody (library writer?) implements the overloads for the types first (which may not be as succinct as the user code).

You would not prefer
A.operator=( operator+(operator*(B,C),D) );
would you?

Pipes are added syntactic sugar, just like the above. The more the merrier (unless you are the one to write the compilers and libraries).
Last edited on
Topic archived. No new replies allowed.