QuickCppLib  0.10
Eliminate all the tedious hassle when making state-of-the-art C++ 14 - 23 libraries!
config.hpp File Reference
#include "cpp_feature.h"
#include "revision.hpp"
#include "detail/config.hpp"
#include "detail/preprocessor_macro_overload.h"

Namespaces

 quickcpplib
 The QuickCppLib namespace.
 
 quickcpplib::_xxx
 Per commit unique namespace to prevent different git submodule versions clashing.
 

Macros

#define QUICKCPPLIB_VERSION_GLUE2(a, b)   a##b
 
#define QUICKCPPLIB_VERSION_GLUE(a, b)   QUICKCPPLIB_VERSION_GLUE2(a, b)
 
#define QUICKCPPLIB_NAMESPACE   quickcpplib::_xxx
 
#define QUICKCPPLIB_NAMESPACE_BEGIN   namespace quickcpplib { namespace _xxx {
 
#define QUICKCPPLIB_NAMESPACE_END   } }
 
#define QUICKCPPLIB_BIND_MESSAGE_PRAGMA2(x)   _Pragma(#x)
 
#define QUICKCPPLIB_BIND_MESSAGE_PRAGMA(type, x)   QUICKCPPLIB_BIND_MESSAGE_PRAGMA2(type x)
 
#define QUICKCPPLIB_BIND_MESSAGE_(type, prefix, msg)   QUICKCPPLIB_BIND_MESSAGE_PRAGMA(type, msg)
 
#define QUICKCPPLIB_MESSAGE(msg)   QUICKCPPLIB_BIND_MESSAGE_(message, QUICKCPPLIB_BIND_MESSAGE_PREFIX("message"), msg)
 Have the compiler output a message. More...
 
#define QUICKCPPLIB_NOTE(msg)   QUICKCPPLIB_BIND_MESSAGE_(message, QUICKCPPLIB_BIND_MESSAGE_PREFIX("note"), msg)
 Have the compiler output a note. More...
 
#define QUICKCPPLIB_WARNING(msg)   QUICKCPPLIB_BIND_MESSAGE_(GCC warning, QUICKCPPLIB_BIND_MESSAGE_PREFIX("warning"), msg)
 Have the compiler output a warning. More...
 
#define QUICKCPPLIB_ERROR(msg)   QUICKCPPLIB_BIND_MESSAGE_(GCC error, QUICKCPPLIB_BIND_MESSAGE_PREFIX("error"), msg)
 Have the compiler output an error. More...
 
#define QUICKCPPLIB_ANNOTATE_RWLOCK_CREATE(p)
 
#define QUICKCPPLIB_ANNOTATE_RWLOCK_DESTROY(p)
 
#define QUICKCPPLIB_ANNOTATE_RWLOCK_ACQUIRED(p, s)
 
#define QUICKCPPLIB_ANNOTATE_RWLOCK_RELEASED(p, s)
 
#define QUICKCPPLIB_ANNOTATE_IGNORE_READS_BEGIN()
 
#define QUICKCPPLIB_ANNOTATE_IGNORE_READS_END()
 
#define QUICKCPPLIB_ANNOTATE_IGNORE_WRITES_BEGIN()
 
#define QUICKCPPLIB_ANNOTATE_IGNORE_WRITES_END()
 
#define QUICKCPPLIB_DRD_IGNORE_VAR(x)
 
#define QUICKCPPLIB_DRD_STOP_IGNORING_VAR(x)
 
#define QUICKCPPLIB_RUNNING_ON_VALGRIND   (0)
 
#define QUICKCPPLIB_IN_ADDRESS_SANITIZER   0
 
#define QUICKCPPLIB_IN_THREAD_SANITIZER   0
 
#define QUICKCPPLIB_IN_UNDEFINED_SANITIZER   0
 
#define QUICKCPPLIB_DISABLE_THREAD_SANITIZE
 
#define QUICKCPPLIB_DISABLE_THREAD_SANITIZE
 
#define QUICKCPPLIB_DISABLE_UNDEFINED_SANITIZE
 
#define QUICKCPPLIB_FORCEINLINE
 
#define QUICKCPPLIB_NOINLINE
 
#define QUICKCPPLIB_USE_SYSTEM_BYTE_LITE   0
 
#define QUICKCPPLIB_USE_SYSTEM_SPAN_LITE   0
 
#define QUICKCPPLIB_HAS_CPP_ATTRIBUTE(attr, edition)   (0)
 
#define QUICKCPPLIB_NORETURN
 
#define QUICKCPPLIB_NODISCARD
 
#define QUICKCPPLIB_SYMBOL_VISIBLE
 
#define QUICKCPPLIB_SYMBOL_EXPORT
 
#define QUICKCPPLIB_SYMBOL_IMPORT
 
#define QUICKCPPLIB_PLATFORM_NATIVE_BITLENGTH   (32)
 
#define QUICKCPPLIB_TEMPLATE(...)   template <__VA_ARGS__
 
#define QUICKCPPLIB_TREQUIRES(...)   , __VA_ARGS__ >
 
#define QUICKCPPLIB_TEXPR(...)   typename = decltype(__VA_ARGS__)
 
#define QUICKCPPLIB_TPRED(...)   typename std::enable_if<(__VA_ARGS__), bool>::type = true
 
#define QUICKCPPLIB_REQUIRES(...)
 

Macro Definition Documentation

◆ QUICKCPPLIB_VERSION_GLUE2

#define QUICKCPPLIB_VERSION_GLUE2 (   a,
 
)    a##b

◆ QUICKCPPLIB_VERSION_GLUE

#define QUICKCPPLIB_VERSION_GLUE (   a,
 
)    QUICKCPPLIB_VERSION_GLUE2(a, b)

◆ QUICKCPPLIB_NAMESPACE

#define QUICKCPPLIB_NAMESPACE   quickcpplib::_xxx

◆ QUICKCPPLIB_NAMESPACE_BEGIN

#define QUICKCPPLIB_NAMESPACE_BEGIN   namespace quickcpplib { namespace _xxx {

◆ QUICKCPPLIB_NAMESPACE_END

#define QUICKCPPLIB_NAMESPACE_END   } }

◆ QUICKCPPLIB_BIND_MESSAGE_PRAGMA2

#define QUICKCPPLIB_BIND_MESSAGE_PRAGMA2 (   x)    _Pragma(#x)

◆ QUICKCPPLIB_BIND_MESSAGE_PRAGMA

#define QUICKCPPLIB_BIND_MESSAGE_PRAGMA (   type,
 
)    QUICKCPPLIB_BIND_MESSAGE_PRAGMA2(type x)

◆ QUICKCPPLIB_BIND_MESSAGE_

#define QUICKCPPLIB_BIND_MESSAGE_ (   type,
  prefix,
  msg 
)    QUICKCPPLIB_BIND_MESSAGE_PRAGMA(type, msg)

◆ QUICKCPPLIB_MESSAGE

#define QUICKCPPLIB_MESSAGE (   msg)    QUICKCPPLIB_BIND_MESSAGE_(message, QUICKCPPLIB_BIND_MESSAGE_PREFIX("message"), msg)

Have the compiler output a message.

◆ QUICKCPPLIB_NOTE

#define QUICKCPPLIB_NOTE (   msg)    QUICKCPPLIB_BIND_MESSAGE_(message, QUICKCPPLIB_BIND_MESSAGE_PREFIX("note"), msg)

Have the compiler output a note.

◆ QUICKCPPLIB_WARNING

#define QUICKCPPLIB_WARNING (   msg)    QUICKCPPLIB_BIND_MESSAGE_(GCC warning, QUICKCPPLIB_BIND_MESSAGE_PREFIX("warning"), msg)

Have the compiler output a warning.

◆ QUICKCPPLIB_ERROR

#define QUICKCPPLIB_ERROR (   msg)    QUICKCPPLIB_BIND_MESSAGE_(GCC error, QUICKCPPLIB_BIND_MESSAGE_PREFIX("error"), msg)

Have the compiler output an error.

◆ QUICKCPPLIB_ANNOTATE_RWLOCK_CREATE

#define QUICKCPPLIB_ANNOTATE_RWLOCK_CREATE (   p)

◆ QUICKCPPLIB_ANNOTATE_RWLOCK_DESTROY

#define QUICKCPPLIB_ANNOTATE_RWLOCK_DESTROY (   p)

◆ QUICKCPPLIB_ANNOTATE_RWLOCK_ACQUIRED

#define QUICKCPPLIB_ANNOTATE_RWLOCK_ACQUIRED (   p,
 
)

◆ QUICKCPPLIB_ANNOTATE_RWLOCK_RELEASED

#define QUICKCPPLIB_ANNOTATE_RWLOCK_RELEASED (   p,
 
)

◆ QUICKCPPLIB_ANNOTATE_IGNORE_READS_BEGIN

#define QUICKCPPLIB_ANNOTATE_IGNORE_READS_BEGIN ( )

◆ QUICKCPPLIB_ANNOTATE_IGNORE_READS_END

#define QUICKCPPLIB_ANNOTATE_IGNORE_READS_END ( )

◆ QUICKCPPLIB_ANNOTATE_IGNORE_WRITES_BEGIN

#define QUICKCPPLIB_ANNOTATE_IGNORE_WRITES_BEGIN ( )

◆ QUICKCPPLIB_ANNOTATE_IGNORE_WRITES_END

#define QUICKCPPLIB_ANNOTATE_IGNORE_WRITES_END ( )

◆ QUICKCPPLIB_DRD_IGNORE_VAR

#define QUICKCPPLIB_DRD_IGNORE_VAR (   x)

◆ QUICKCPPLIB_DRD_STOP_IGNORING_VAR

#define QUICKCPPLIB_DRD_STOP_IGNORING_VAR (   x)

◆ QUICKCPPLIB_RUNNING_ON_VALGRIND

#define QUICKCPPLIB_RUNNING_ON_VALGRIND   (0)

◆ QUICKCPPLIB_IN_ADDRESS_SANITIZER

#define QUICKCPPLIB_IN_ADDRESS_SANITIZER   0

◆ QUICKCPPLIB_IN_THREAD_SANITIZER

#define QUICKCPPLIB_IN_THREAD_SANITIZER   0

◆ QUICKCPPLIB_IN_UNDEFINED_SANITIZER

#define QUICKCPPLIB_IN_UNDEFINED_SANITIZER   0

◆ QUICKCPPLIB_DISABLE_THREAD_SANITIZE [1/2]

#define QUICKCPPLIB_DISABLE_THREAD_SANITIZE

◆ QUICKCPPLIB_DISABLE_THREAD_SANITIZE [2/2]

#define QUICKCPPLIB_DISABLE_THREAD_SANITIZE

◆ QUICKCPPLIB_DISABLE_UNDEFINED_SANITIZE

#define QUICKCPPLIB_DISABLE_UNDEFINED_SANITIZE

◆ QUICKCPPLIB_FORCEINLINE

#define QUICKCPPLIB_FORCEINLINE

◆ QUICKCPPLIB_NOINLINE

#define QUICKCPPLIB_NOINLINE

◆ QUICKCPPLIB_USE_SYSTEM_BYTE_LITE

#define QUICKCPPLIB_USE_SYSTEM_BYTE_LITE   0

◆ QUICKCPPLIB_USE_SYSTEM_SPAN_LITE

#define QUICKCPPLIB_USE_SYSTEM_SPAN_LITE   0

◆ QUICKCPPLIB_HAS_CPP_ATTRIBUTE

#define QUICKCPPLIB_HAS_CPP_ATTRIBUTE (   attr,
  edition 
)    (0)

◆ QUICKCPPLIB_NORETURN

#define QUICKCPPLIB_NORETURN

◆ QUICKCPPLIB_NODISCARD

#define QUICKCPPLIB_NODISCARD

◆ QUICKCPPLIB_SYMBOL_VISIBLE

#define QUICKCPPLIB_SYMBOL_VISIBLE

◆ QUICKCPPLIB_SYMBOL_EXPORT

#define QUICKCPPLIB_SYMBOL_EXPORT

◆ QUICKCPPLIB_SYMBOL_IMPORT

#define QUICKCPPLIB_SYMBOL_IMPORT

◆ QUICKCPPLIB_PLATFORM_NATIVE_BITLENGTH

#define QUICKCPPLIB_PLATFORM_NATIVE_BITLENGTH   (32)

◆ QUICKCPPLIB_TEMPLATE

#define QUICKCPPLIB_TEMPLATE (   ...)    template <__VA_ARGS__

◆ QUICKCPPLIB_TREQUIRES

#define QUICKCPPLIB_TREQUIRES (   ...)    , __VA_ARGS__ >

◆ QUICKCPPLIB_TEXPR

#define QUICKCPPLIB_TEXPR (   ...)    typename = decltype(__VA_ARGS__)

◆ QUICKCPPLIB_TPRED

#define QUICKCPPLIB_TPRED (   ...)    typename std::enable_if<(__VA_ARGS__), bool>::type = true

◆ QUICKCPPLIB_REQUIRES

#define QUICKCPPLIB_REQUIRES (   ...)