P99
Defines
A small collection of utilities
Compiler Specific Tuning and Extensions
+ Collaboration diagram for A small collection of utilities:

Defines

#define P99_CONST_FUNCTION
 On architectures that support this, assert that a function is "const", i.e only depends on parameters and global variables.
#define P99_DEPRECATED(...)   /*! \deprecated __VA_ARGS__ */
 Mark the conditional expression as being unlikely.
#define P99_EXPECT(EXP, VAL)   (EXP)
 Provide a compiler hint concerning the likelihood of a certain value in an expression EXP.
#define p99_has_attribute(X)   (__has_attribute(X) || p00_has_attribute_ ## X)
#define p99_has_builtin(X)   (__has_builtin(X) || p00_has_builtin_ ## X)
#define p99_has_extension(X)   (__has_extension(X) || p00_has_extension_ ## X)
#define p99_has_feature(X)   (__has_feature(X) || p00_has_feature_ ## X)
#define P99_IF_COMPILER(COMP,...)   P00_COMPILER_PRAGMA_ ## COMP(P99_STRINGIFY(__VA_ARGS__))
 Issue the pragma that is given as a supplementary argument iff the actual compiler is COMP.
#define p99_inline   static inline
 Try to force a function always to be inlined.
#define P99_MACRO_END(...)   P00_HARMLESS_DECLARATION
 A meta macro that forces the addition of a semicolon after a call to the macro that it terminates.
#define P99_PARALLEL_PRAGMA
 A token sequence that can be used in a #pragma directive to indicate a parallel for-loop.
#define P99_PURE_FUNCTION
 On architectures that support this, assert that a function is "pure", i.e only depends on parameters and global variables.
#define P99_SETJMP_INLINE(NAME)   P99_WEAK(NAME)
#define P99_STRINGIFY(...)   P00_STRINGIFY(__VA_ARGS__)
 Transform the argument list into one string.
#define P99_VECTOR(T, NAME, N)   _Alignas(sizeof(T)*(N)) T NAME[N]
 A wrapper for vector type extensions.
#define P99_WARN_UNUSED_RESULT
 On architectures that support this, warn if the result of a function is not used.
#define P99_WEAK(...)   P99_IF_LT(P99_NARG(__VA_ARGS__), 2)(P00_WEAK1(__VA_ARGS__))(P00_WEAK2(__VA_ARGS__))
 Declare a symbol to be weak such that it can be provided several times without error.
#define static_inline   static inline
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines