Add feature test for literal constructor in downlevel compilers

This commit is contained in:
Herb Sutter 2020-12-18 11:56:36 -08:00
parent b77eaa87ee
commit 248a7cbdce

View File

@ -109,7 +109,11 @@ public:
using handler = void (*)(); using handler = void (*)();
#endif #endif
#if defined(__cpp_constexpr) && __cpp_constexpr >= 201806
constexpr contract_group (handler h) { set_handler(h); } constexpr contract_group (handler h) { set_handler(h); }
#else
constexpr contract_group (handler h) : chandler(h ? h : []()noexcept{}) { }
#endif
constexpr auto set_handler(handler h) -> handler { return std::exchange(chandler, h ? h : []()noexcept{}); } constexpr auto set_handler(handler h) -> handler { return std::exchange(chandler, h ? h : []()noexcept{}); }
constexpr auto get_handler() -> handler { return chandler; } constexpr auto get_handler() -> handler { return chandler; }