cxxomfort
rel.20210622
Simple backports for C++ - http://ryan.gulix.cl/fossil.cgi/cxxomfort/
|
Macros used to control cxxomfort's behaviour. More...
Macros | |
#define | CXXOFLAG_MAKE_TYPEDEF_charn_t 0 |
Makes the reserved names char16_t , char32_t available via typedefs or named types. More... | |
#define | CXXOFLAG_NO_STD_USING 0 |
Disables adding names to namespace std If this macro is defined and has a value other than 0 , cxxomfort headers will not add their backports to namespace std (eg.: "<code>std::as_const</code>). This option
does not affect utilities defined as "base" (eg.: nullptr_t ). More... | |
#define | CXXOFLAG_WITHOUT_LONGLONG 0 |
Declare this macro to tell the library that the compiler does not support long long . More... | |
#define | CXXOFLAG_USE_INTERNAL_TR1 0 |
Declare this macro to tell the library to use its own implementation of TR1 assets.This macro is intended to be used with pre-C++03 compilers that don't implement C++03 TR1, and is ignored when the compiler supports C++11 or above. More... | |
#define | CXXOFLAG_MAKE_TYPEDEF_byte 0 |
Makes the reserved name byte a typedef. More... | |
Macros used to control cxxomfort's behaviour.
Listing of a number of macros that can be used to change the behaviour of cxxomfort .
CXXOFLAG_NO_STD_USING - tells the compiler to avoid adding names to namespace std
where possible.
CXXOFLAG_USE_INTERNAL_TR1 - tells the compiler to use its own TR1 implementation.ref
CXXOFLAG_NONOMINMAX - tells the compiler to not define NOMINMAX
in Visual C++ where possible.
CXXOMFORT_NOTICES - controls log level. Defined as a numeric value, larger values increase the level of verbosity.When CXXOMFORT_NOTICES
is defined:
1
will output basic notifications about library status and detected compiler, as well as detected C++ version.2
will also output notifications about what headers are being backported, and what fixes is the library adding for known issues (see cxxomfort-fix
).3
or above will also output notifications about specific features being added or adjusted depending on each header.
CXXOFLAG_USE_INTERNAL_TR1 - can be used in pre-C++03 to make cxxomfort also include backports for some stuff in TR1 like array
. #define CXXOFLAG_MAKE_TYPEDEF_charn_t 0 |
Makes the reserved names char16_t
, char32_t
available via typedefs or named types.
When in C++03 mode, if this macro is enabled, <cxxomfort/cuchar.hpp>
will set up the names char16_t
and char32_t
as typedefs to uint16_t
and uint32_t
respectively, thus making them integral integer types, instead of declaring our own char16_t
and char32_t
types.
The former also follows how the names are set up in eg.: GCC in C++0x (not C++11) mode.
#define CXXOFLAG_NO_STD_USING 0 |
Disables adding names to namespace std
If this macro is defined and has a value other than 0
, cxxomfort headers will not add their backports to namespace std
(eg.: "<code>std::as_const</code>). This option
does not affect utilities defined as "base" (eg.: nullptr_t
).
entire
point of the cxxomfort library is that it adds stuff to namespace std
since there is stuff that depends on it (eg.: anything that used std::enable_if
). #define CXXOFLAG_WITHOUT_LONGLONG 0 |
Declare this macro to tell the library that the compiler does not support long long
.
long long
are not supported. #define CXXOFLAG_USE_INTERNAL_TR1 0 |
Declare this macro to tell the library to use its own implementation of TR1 assets.This macro is intended to be used with pre-C++03 compilers that don't implement C++03 TR1, and is ignored when the compiler supports C++11 or above.
See also: <array> , <functional> , <random> , <tuple> , <utility> .
#define CXXOFLAG_MAKE_TYPEDEF_byte 0 |
Makes the reserved name byte
a typedef.
When pre- C++17 mode, if this macro is enabled, <cxxomfort/cstddef.hpp>
will set up the name byte
(std::byte
) as a typedef to the type unsigned char
, instead of using one of the backport / emulation mechanisms made available to cxxomfort.
The resulting code is not necessarily supported (eg.: abiguous overloads).