Throwing an exception from std::call_once
问题 The C++ Standard states the following about the execution of std::call_once with functions that throw exceptions (§30.4.4.2/2): 2/ Effects: An execution of call_once that does not call its func is a passive execution. An execution of call_once that calls its func is an active execution. An active execution shall call INVOKE (DECAY_- COPY ( std::forward(func)), DECAY_COPY (std::forward(args))...). If such a call to func throws an exception the execution is exceptional, otherwise it is