lean cpp library
A lean C++ library providing efficient utility classes for high-performance C++ applications.
Defines
Global macros

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.

Detailed Description

See also:
Global switches used for configuration
C++0x-related macros