cxxomfort  rel.20211024
Simple backports for C++ - https://ryan.gulix.cl/fossil.cgi/cxxomfort/
Classes | Namespaces | Macros
config.hpp File Reference

Classes

struct  info
 

Namespaces

 cxxomfort
 Namespace of the cxxomfort library.
 
 cxxomfort::cxxostd
 Backports made available by cxxomfort.
 
 cxxomfort::fix
 Fixes for implementation issues in std.
 
 cxxomfort::library
 Supplements to backports and other utilities.
 

Macros

#define CXXOMFORT_DATE   20211023UL
 
#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_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_WITHOUT_LONGLONG   0
 Declare this macro to tell the library that the compiler does not support long long. More...
 
#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).
 
#define CXXO_NOTICE(msg)   CXXO_NOTICE_IMPL_( __FILE__ "(" CXXO_STRINGIZE1(__LINE__) ") : cxxomfort notice: " msg)
 
#define CXXO_WARNING(msg)   CXXO_NOTICE_IMPL_( __FILE__ "(" CXXO_STRINGIZE1(__LINE__) ") : cxxomfort warning: " msg)
 
#define CXXO_NOTICE(msg)   _Pragma(message ("WARNING - " msg))
 
#define CXXOMFORT_CXX11_CODE(code1, code2)
 
#define CXXOMFORT_CXX14_CODE(code1, code2)
 
#define CXXOMFORT_CXX17_CODE(code1, code2)
 
#define CXXO_CONSTEXPR   constexpr
 Evaluates to constexpr when it's available.
 
#define CXXO_CONSTEXPR14   constexpr
 Evaluates to constexpr when it's available in its C++14 "relaxed" form.
 
#define CXXO_CONSTEXPR
 Evaluates to constexpr when it's available.
 
#define CXXO_CONSTEXPR14
 Evaluates to constexpr when it's available in its C++14 "relaxed" form.
 
#define CXXO_NOEXCEPT
 Evaluates to noexcept when available. More...
 
#define CXXO_NOEXCEPTNOTHROW   throw()
 Evaluates to either noexcept or throw() when available.
 
#define CXXO_NOTHROW   throw()
 Evaluates to throw() in C++03 mode.
 

Detailed Description

Author
Luis Machuca Bezzaza

This file contains configuration macros used by the cxxomfort library and it is not intended to be directly used.

If you are directly including this perhaps you meant to include cxxomfort/backports.hpp.

Macro Definition Documentation

◆ 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_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_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.

◆ CXXO_NOTICE [1/2]

#define CXXO_NOTICE (   msg)    CXXO_NOTICE_IMPL_( __FILE__ "(" CXXO_STRINGIZE1(__LINE__) ") : cxxomfort notice: " msg)

Emits a notice at compilation time.

◆ CXXO_WARNING

#define CXXO_WARNING (   msg)    CXXO_NOTICE_IMPL_( __FILE__ "(" CXXO_STRINGIZE1(__LINE__) ") : cxxomfort warning: " msg)

Emits a warning at compilation time.

◆ CXXO_NOTICE [2/2]

#define CXXO_NOTICE (   msg)    _Pragma(message ("WARNING - " msg))

Emits a notice at compilation time.