4 ms·
And now consider the confusion of your users when diff is picked up by ADL, but reverse_diff isn't. A lot of the code that tries to showcase new C++ features o
by pmr_ 14y ago
And now consider the confusion of your users when diff is picked up by ADL, but reverse_diff isn't.
A lot of the code that tries to showcase new C++ features often falls short on some of the intricacies of the language or doesn't embed it into a larger scheme of a library. If my library offers customization via ADL across the board that kind of coding goes right out the window.
I'm aware of the proposals to make function objects through ADL, but this is but one example where the complexity of C++ comes to the surface.
- fauigerzigerk 14y agoC++ is undoubtedly complex. I'm not a huge fan of advanced template programming either. But specifically about the ADL problem, I think that bind is used primarily at a call site to create a predicate. Something that can now be done with lambda expressions. That said, I don't like the fact that each and every feature of C++ comes with a really long list of weird special cases that are impossible to keep in your head.
- cmccabe 14y agoMore importantly, consider the hell that debugging that mass of templates, callbacks, overloaded functions, etc, will be. And you WILL have to debug it. Even if your code is perfect, one day someone will stomp on your memory and you'll be looking at this stuff in gdb, cursing the day you ever heard of Boost.