Hi geguj,
thank you for the input.
> For many types [...] every member function can and should be noexcept.
Are you referring to types, which never would throw anyway? Then noexcept would solidify it into the class interface.
Or are you talking about accepting the program to terminate on exceptions? That perhaps is not universally acceptable in some industries or some usages of those classes? As far as I know there is a reasoned standing rule that the standard library does NOT use the noexcept specifier everywhere possible.
Perhaps we need some way to mark the first case in the program.
We expect those functions to never throw and never terminate.
The current noexcept only guarantees that the functions never throw (but terminate, if an exception happens).
(not sure, whether P4312 - https://github.com/cplusplus/papers/issues/2853 - provides that functionality. It mentions it is decidable at compile-time through the call hierarchy, but also that it is identical to noexcept)