cxxomfort  rel.20210622
Simple backports for C++ - http://ryan.gulix.cl/fossil.cgi/cxxomfort/
Macros
Behaviour Configuration Macros

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 stdIf 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...
 

Detailed Description

Macros used to control cxxomfort's behaviour.

Listing of a number of macros that can be used to change the behaviour of cxxomfort .

Feature Level Macros

Logging Macros

When CXXOMFORT_NOTICES is defined:

Macro Definition Documentation

◆ CXXOFLAG_MAKE_TYPEDEF_charn_t

#define CXXOFLAG_MAKE_TYPEDEF_charn_t   0

Makes the reserved names char16_t , char32_t available via typedefs or named types.

Behaviour Macro:

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.

Note
This flag is usually set by cxxomfort automatically.

◆ CXXOFLAG_NO_STD_USING

#define CXXOFLAG_NO_STD_USING   0

Disables adding names to namespace stdIf 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 ).

Warning
Using this macro is unsupported and provided only to fix potential compatibility issues. The 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).

◆ CXXOFLAG_WITHOUT_LONGLONG

#define CXXOFLAG_WITHOUT_LONGLONG   0

Declare this macro to tell the library that the compiler does not support long long.

Warning
Compiler configurations without long long are not supported.

◆ CXXOFLAG_USE_INTERNAL_TR1

#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> .

◆ CXXOFLAG_MAKE_TYPEDEF_byte

#define CXXOFLAG_MAKE_TYPEDEF_byte   0

Makes the reserved name byte a typedef.

Behaviour Macro:

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).