qb  2.0.0.0
C++17 Actor Framework
qb Issue Watch Star Fork Follow @isndev
Loading...
Searching...
No Matches
build_macros.h File Reference

Platform, compiler, and C++ feature detection macros for the QB Framework. More...

#include <cerrno>
#include <cstdint>
Include dependency graph for build_macros.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define QB_GET
#define QB_API
#define QB_UNUSED_VAR
#define QB__HAS_FULL_CXX11   1
#define QB__HAS_CXX14   0
#define QB__HAS_CXX17   0
#define QB__HAS_CXX20   0
#define QB__HAS_NS_INLINE   1
#define QB__NS_INLINE   inline
#define QB__HAS_UDS   1
#define QB__HAS_SA_LEN   0
#define QB__HAS_NTOP   1
#define QB__64BITS   0
#define QB__NO_EXCEPTIONS   1
#define QB__THROW(x, retval)
#define QB__THROW0(x)
#define __has_attribute(x)
#define __has_builtin(x)
#define qb__likely(exp)
#define qb__unlikely(exp)
#define QB__STD   ::std::
#define DISABLE_WARNING_PUSH
#define DISABLE_WARNING_POP
#define DISABLE_WARNING_UNREFERENCED_FORMAL_PARAMETER
#define DISABLE_WARNING_UNREFERENCED_FUNCTION
#define DISABLE_WARNING_NARROWING
#define DISABLE_WARNING_DEPRECATED
#define DISABLE_WARNING_OLD_STYLE_CAST
#define DISABLE_WARNING_IMPLICIT_FALLTHROUGH

Detailed Description

Platform, compiler, and C++ feature detection macros for the QB Framework.

This file provides a comprehensive set of preprocessor macros for detecting compiler features (e.g., C++11/14/17/20 support), platform specifics (Windows, Linux, macOS), CPU architecture (32/64-bit), and for controlling build configurations (e.g., dynamic/static linking, enabling/disabling exceptions, UDS support).

It defines platform-independent API export/import directives (QB_API), utility macros like QB_ARRAYSIZE, and warning suppression macros for various compilers. These macros are crucial for maintaining cross-platform compatibility and build flexibility throughout the QB framework.

Note
This header is foundational and typically included by other qb headers; direct inclusion by application code is usually not necessary unless interacting with these specific macros.

Macro Definition Documentation

◆ QB__THROW

#define QB__THROW ( x,
retval )
Value:
return (retval)

◆ QB__THROW0

#define QB__THROW0 ( x)
Value:
return

◆ __has_attribute

#define __has_attribute ( x)
Value:
0

◆ __has_builtin

#define __has_builtin ( x)
Value:
0

◆ qb__likely

#define qb__likely ( exp)
Value:
(!!(exp))

◆ qb__unlikely

#define qb__unlikely ( exp)
Value:
(!!(exp))