lean cpp library
A lean C++ library providing efficient utility classes for high-performance C++ applications.
|
Defines | |
#define | LEAN_NOTHING |
Nothing. | |
#define | LEAN_VARIADIC_NO_PARAMS |
'False' has-*-parameter-argument. | |
#define | LEAN_VARIADIC_HAS_PARAMS , |
'True' has-*-parameter-argument. | |
#define | LEAN_VARIADIC_PERFECT_FORWARDING_XXL(fun, tparams, has_tparams, params, has_params, modifiers, body, args) |
Defines a variadic perfect-forwarding function, optionally including additional template & function parameters. | |
#define | LEAN_VARIADIC_PERFECT_FORWARDING_TP(fun, tparams, params, modifiers, body, args) LEAN_VARIADIC_PERFECT_FORWARDING_XXL(fun, tparams, LEAN_VARIADIC_HAS_PARAMS, params, LEAN_VARIADIC_HAS_PARAMS, modifiers, body, args) |
Defines variadic perfect-forwarding function function including additional template & function parameters. | |
#define | LEAN_VARIADIC_PERFECT_FORWARDING_T(fun, tparams, modifiers, body) LEAN_VARIADIC_PERFECT_FORWARDING_XXL(fun, tparams, LEAN_VARIADIC_HAS_PARAMS, LEAN_NOTHING, LEAN_VARIADIC_NO_PARAMS, modifiers, body, LEAN_NOTHING) |
Defines variadic perfect-forwarding function function including additional template parameters. | |
#define | LEAN_VARIADIC_PERFECT_FORWARDING_P(fun, params, modifiers, body, args) LEAN_VARIADIC_PERFECT_FORWARDING_XXL(fun, LEAN_NOTHING, LEAN_VARIADIC_NO_PARAMS, params, LEAN_VARIADIC_HAS_PARAMS, modifiers, body, args) |
Defines variadic perfect-forwarding function function including additional function parameters. | |
#define | LEAN_VARIADIC_PERFECT_FORWARDING(fun, modifiers, body) LEAN_VARIADIC_PERFECT_FORWARDING_XXL(fun, LEAN_NOTHING, LEAN_VARIADIC_NO_PARAMS, LEAN_NOTHING, LEAN_VARIADIC_NO_PARAMS, modifiers, body, LEAN_NOTHING) |
Defines variadic perfect-forwarding function function. | |
#define | LEAN_DEBUG_BUILD |
Defined in debug builds. | |
#define | LEAN_RELEASE_BUILD |
Defined in release builds. | |
#define | LEAN_ASSERT(expr) assert(expr) |
Asserts that the given expression is always true. | |
#define | LEAN_ASSERT_DEBUG(expr) assert(expr) |
Asserts that the given expression is always true, does not assume anything in release builds. | |
#define | LEAN_ASSERT_NOT_NULL(expr) ( LEAN_ASSERT(expr != nullptr), expr ) |
Asserts that the given expression is never null, returning the expression. | |
#define | LEAN_ASSERT_NOT_NULL_DEBUG(expr) ( LEAN_ASSERT_DEBUG(expr != nullptr), expr ) |
Asserts that the given expression is never null, returning the expression. | |
#define | LEAN_INLINE inline |
Instructs the compiler to inline a specific method. | |
#define | LEAN_NOINLINE inline |
Instructs the compiler not to inline a specific method in a header file. | |
#define | LEAN_NOLTINLINE |
Instructs the compiler not to inline a specific method at link time. | |
#define | LEAN_NOTINLINE LEAN_NOLTINLINE |
Instructs the compiler not to inline a specific template function in a header file. | |
#define | LEAN_INTERFACE |
Reduces overhead for purely virtual classes. | |
#define | LEAN_LINK_SELECT(linklib, headeronly) linklib |
Picks the first argument in a linked library, the second one in a header-only library. | |
#define | LEAN_LINKING 1 |
Using a linked library. | |
#define | LEAN_INCLUDE_LINKED 1 |
Also include linked function definitions. | |
#define | LEAN_MAYBE_LINK LEAN_LINK_SELECT(, LEAN_NOINLINE) |
Trys to avoid inlining in a header-only library. | |
#define | LEAN_ALWAYS_LINK LEAN_LINK_SELECT(LEAN_NOLTINLINE, LEAN_NOINLINE) |
Trys to avoid inlining in a header-only library as well as at link time. | |
#define | LEAN_INLINE_SELECT(maxdep, mindep) mindep |
Picks the first argument in a header-only / non-min-dependency library, the second one in a min-dependency / linked library. | |
#define | LEAN_INCLUDE_INLINED 1 |
Include inlined function definitions. | |
#define | LEAN_MAYBE_INLINE LEAN_INLINE_SELECT(inline, ) |
Inlines in a header-only / non-min-dependency library. | |
#define | LEAN_NEVER_INLINE LEAN_INLINE_SELECT(LEAN_NOINLINE, LEAN_NOLTINLINE) |
Trys to avoid inlining in header-only / non-min-dependency library as well as at link time. | |
#define | LEAN_JOIN(a, b) a##b |
Appends token b to token a. | |
#define | LEAN_JOIN_VALUES(a, b) LEAN_JOIN(a, b) |
Appends token b to token a, evaluating macros first. | |
#define | LEAN_QUOTE(expr) #expr |
Quotes the given expression. | |
#define | LEAN_QUOTE_VALUE(value) LEAN_QUOTE(value) |
Quotes the given value, evaluating macros first. | |
#define | LEAN_SOURCE_STRING __FILE__ " (" LEAN_QUOTE_VALUE(__LINE__) ")" |
String literal that contains the current source file and line. |