Commit 589b93de authored by Dominik Schmidt's avatar Dominik Schmidt Committed by Victor Zverovich

Add default copy constructor to SystemError (#475)

* Add default copy constructor to SystemError
* Add FMT_DEFAULTED_COPY_CTOR macro
parent db0d54f8
...@@ -246,6 +246,20 @@ typedef __int64 intmax_t; ...@@ -246,6 +246,20 @@ typedef __int64 intmax_t;
TypeName& operator=(const TypeName&) TypeName& operator=(const TypeName&)
#endif #endif
#ifndef FMT_USE_DEFAULTED_FUNCTIONS
# define FMT_USE_DEFAULTED_FUNCTIONS 0
#endif
#ifndef FMT_DEFAULTED_COPY_CTOR
# if FMT_USE_DEFAULTED_FUNCTIONS || FMT_HAS_FEATURE(cxx_defaulted_functions) || \
(FMT_GCC_VERSION >= 404 && FMT_HAS_GXX_CXX11) || FMT_MSC_VER >= 1800
# define FMT_DEFAULTED_COPY_CTOR(TypeName) \
TypeName(const TypeName&) = default;
# else
# define FMT_DEFAULTED_COPY_CTOR(TypeName)
# endif
#endif
#ifndef FMT_USE_USER_DEFINED_LITERALS #ifndef FMT_USE_USER_DEFINED_LITERALS
// All compilers which support UDLs also support variadic templates. This // All compilers which support UDLs also support variadic templates. This
// makes the fmt::literals implementation easier. However, an explicit check // makes the fmt::literals implementation easier. However, an explicit check
...@@ -2405,6 +2419,7 @@ class SystemError : public internal::RuntimeError { ...@@ -2405,6 +2419,7 @@ class SystemError : public internal::RuntimeError {
SystemError(int error_code, CStringRef message) { SystemError(int error_code, CStringRef message) {
init(error_code, message, ArgList()); init(error_code, message, ArgList());
} }
FMT_DEFAULTED_COPY_CTOR(SystemError)
FMT_VARIADIC_CTOR(SystemError, init, int, CStringRef) FMT_VARIADIC_CTOR(SystemError, init, int, CStringRef)
FMT_API ~SystemError() FMT_DTOR_NOEXCEPT; FMT_API ~SystemError() FMT_DTOR_NOEXCEPT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment