Enable error_code construction from enums specializing std::is_error_code_enum. Fixes #70.

This commit is contained in:
Peter Dimov
2021-10-11 02:02:22 +03:00
parent 5217e58a7d
commit 4ec1e54099
4 changed files with 52 additions and 2 deletions
+6 -2
View File
@@ -107,8 +107,12 @@ public:
}
template<class ErrorCodeEnum> BOOST_SYSTEM_CONSTEXPR error_code( ErrorCodeEnum e,
typename detail::enable_if<is_error_code_enum<ErrorCodeEnum>::value>::type* = 0 ) BOOST_NOEXCEPT:
d1_(), lc_flags_( 0 )
typename detail::enable_if<
is_error_code_enum<ErrorCodeEnum>::value
#if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
|| std::is_error_code_enum<ErrorCodeEnum>::value
#endif
>::type* = 0 ) BOOST_NOEXCEPT: d1_(), lc_flags_( 0 )
{
*this = make_error_code( e );
}