/* Global configuration file. Only for settings that apply to every source file and are unlikely to change often, such as whether a certain C++11 feature is available. Do NOT use for settings local to some code or for settings that can change often. Any change in this header will cause a rebuild of almost everything. */ #ifndef CONFIG_GLOBAL_H #define CONFIG_GLOBAL_H #define HAVE_GCC_BUILTIN_ATOMIC 0 #define HAVE_GCC_BUILTIN_FFS 0 /* _Pragma */ #define HAVE_GCC_PRAGMA_OPERATOR 0 #define HAVE_GCC_DEPRECATED_MESSAGE 0 #define HAVE_SYSLOG_H 0 /* Guaranteed copy elision (C++17), __cpp_guaranteed_copy_elision (C++2a): */ #define HAVE_CPP_GUARANTEED_COPY_ELISION 0 // Compiler supports all of C++2a "Add Constexpr Modifiers to Functions // in and Headers", "Making std::vector // constexpr", and "Adding the constinit keyword": #define HAVE_CPP_CONSTINIT_SORTED_VECTOR 0 // Useable C++2a : #define HAVE_CPP_SPAN 0 /* "CWG motion 23: P1825R0 'Merged wording for P0527R1 and P1155R3' (DR)" in "N4829 Editors' Report -- Programming Languages -- C++" marks "More implicit moves" as a DR. Some versions of GCC already implemented it prior to the fix for "move ctor wrongly chosen in return stmt (derived vs. base)"; MSVC++ 14.24 started to implement it, see "MSVC++ 14.24 started to chose move ctor in return derived vs. base". At least Clang 9, which does not implement it, emits -Werror,-Wreturn-std-move when it therefore considers a std::move to be missing. On the other hand, at least some versions of GCC would emit -Werror=redundant-move in places where such a std::move would be added unconditionally, see c00948d9bd35dfb15a331c2163f32e9ee24644fd "Silence bogus -Werror=redundant-move (GCC 9)". */ #define HAVE_P1155R3 0 #endif