On Mon, Apr 3, 2017 at 9:13 AM, Peter Dimov via Boost
Barrett Adair wrote:
The "behavior is undefined" notes are limited to the features with template template parameters.
This seems wrong. Is the behavior really undefined here? "It could format your hard drive" undefined? It seems to me that the worst that can happen is a compile error ("the program is ill-formed").
No, it's not "Undefined Behavior" in the ISO C++ Standard sense. I understood "undefined behavior" in the context of a non-std library to mean "violation of contract", but probably this is a misleading use of the term. Indeed, a compile error is the worst that can happen. In retrospect, it's likely better to remove these warnings entirely -- they are really just disclaimers for the case where a user template e.g. fails a static_assert, and a CallableTraits feature appears to be unable to SFINAE as promised. Barrett