Hacker News new | ask | show | jobs
by ncmncm 1369 days ago
> it's just what it takes to do this in C++

False.

1 comments

Do you have any examples of how std::optional could be implemented more simply?
The std::optional in MSVC was implemented in a language considerably behind current C++, for obvious reasons. The need to use template metaprogramming in implementations is much less, today.
How so? Some of the "enable_if"s can probably be replaced with "requires" syntax, as well as the "conjunction_v"s and "disjunction_v"s, but the majority of the complexity seems to be in expressing the various requirements imposed by the Standard. Are there recently-added concepts (or other features) that would express them more naturally?