pragma.h File Reference
#include <mc_rtc/macros/deprecated.h>
#include <mc_rtc/macros/pp_id.h>
Include dependency graph for pragma.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define MC_RTC_STRINGIFY_(x)   #x
 
#define MC_RTC_STRINGIFY(x)   MC_RTC_STRINGIFY_(x)
 
#define MC_RTC_PRAGMA(x)   _Pragma(MC_RTC_STRINGIFY(x))
 
#define MC_RTC_WN(fun, ...)
 
#define MC_RTC_MAP2_0(fun)
 
#define MC_RTC_MAP2_1(fun, X, Y)   fun(X, Y)
 
#define MC_RTC_MAP2_2(fun, X, Y, ...)   fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_1(fun, __VA_ARGS__))
 
#define MC_RTC_MAP2_3(fun, X, Y, ...)   fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_2(fun, __VA_ARGS__))
 
#define MC_RTC_MAP2_4(fun, X, Y, ...)   fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_3(fun, __VA_ARGS__))
 
#define MC_RTC_MAP2_5(fun, X, Y, ...)   fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_4(fun, __VA_ARGS__))
 
#define MC_RTC_MAP2_6(fun, X, Y, ...)   fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_5(fun, __VA_ARGS__))
 
#define MC_RTC_MAP2_7(fun, X, Y, ...)   fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_6(fun, __VA_ARGS__))
 
#define MC_RTC_MAP2_8(fun, X, Y, ...)   fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_7(fun, __VA_ARGS__))
 
#define MC_RTC_MAP2_9(fun, X, Y, ...)   fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_8(fun, __VA_ARGS__))
 
#define MC_RTC_MAP2_10(fun, X, Y, ...)   fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_9(fun, __VA_ARGS__))
 
#define MC_RTC_GET_MACRO(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, NAME, ...)   NAME
 
#define MC_RTC_MAP_TWO_ARGS(fun, ...)
 
#define MC_RTC_GCC_diagnostic_ignored(x)
 
#define MC_RTC_ClangOnly_diagnostic_ignored(x)
 
#define MC_RTC_GCCOnly_diagnostic_ignored(x)
 
#define MC_RTC_MSVC_diagnostic_ignored(x)
 
#define MC_RTC_diagnostic_ignored_(c, w)   MC_RTC_##c##_diagnostic_ignored(w)
 
#define MC_RTC_diagnostic_ignored(...)   MC_RTC_MAP_TWO_ARGS(MC_RTC_diagnostic_ignored_, __VA_ARGS__)
 

Macro Definition Documentation

◆ MC_RTC_ClangOnly_diagnostic_ignored

#define MC_RTC_ClangOnly_diagnostic_ignored (   x)

◆ MC_RTC_diagnostic_ignored

#define MC_RTC_diagnostic_ignored (   ...)    MC_RTC_MAP_TWO_ARGS(MC_RTC_diagnostic_ignored_, __VA_ARGS__)

◆ MC_RTC_diagnostic_ignored_

#define MC_RTC_diagnostic_ignored_ (   c,
 
)    MC_RTC_##c##_diagnostic_ignored(w)

Helper macro for MC_RTC_diagnostic_ignored

◆ MC_RTC_GCC_diagnostic_ignored

#define MC_RTC_GCC_diagnostic_ignored (   x)

◆ MC_RTC_GCCOnly_diagnostic_ignored

#define MC_RTC_GCCOnly_diagnostic_ignored (   x)

◆ MC_RTC_GET_MACRO

#define MC_RTC_GET_MACRO (   _0,
  _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8,
  _9,
  _10,
  _11,
  _12,
  _13,
  _14,
  _15,
  _16,
  _17,
  _18,
  _19,
  _20,
  NAME,
  ... 
)    NAME

◆ MC_RTC_MAP2_0

#define MC_RTC_MAP2_0 (   fun)

Sub-function in FOR_EACH macro reading arguments two by two

◆ MC_RTC_MAP2_1

#define MC_RTC_MAP2_1 (   fun,
  X,
 
)    fun(X, Y)

◆ MC_RTC_MAP2_10

#define MC_RTC_MAP2_10 (   fun,
  X,
  Y,
  ... 
)    fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_9(fun, __VA_ARGS__))

◆ MC_RTC_MAP2_2

#define MC_RTC_MAP2_2 (   fun,
  X,
  Y,
  ... 
)    fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_1(fun, __VA_ARGS__))

◆ MC_RTC_MAP2_3

#define MC_RTC_MAP2_3 (   fun,
  X,
  Y,
  ... 
)    fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_2(fun, __VA_ARGS__))

◆ MC_RTC_MAP2_4

#define MC_RTC_MAP2_4 (   fun,
  X,
  Y,
  ... 
)    fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_3(fun, __VA_ARGS__))

◆ MC_RTC_MAP2_5

#define MC_RTC_MAP2_5 (   fun,
  X,
  Y,
  ... 
)    fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_4(fun, __VA_ARGS__))

◆ MC_RTC_MAP2_6

#define MC_RTC_MAP2_6 (   fun,
  X,
  Y,
  ... 
)    fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_5(fun, __VA_ARGS__))

◆ MC_RTC_MAP2_7

#define MC_RTC_MAP2_7 (   fun,
  X,
  Y,
  ... 
)    fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_6(fun, __VA_ARGS__))

◆ MC_RTC_MAP2_8

#define MC_RTC_MAP2_8 (   fun,
  X,
  Y,
  ... 
)    fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_7(fun, __VA_ARGS__))

◆ MC_RTC_MAP2_9

#define MC_RTC_MAP2_9 (   fun,
  X,
  Y,
  ... 
)    fun(X, Y) MC_RTC_PP_ID(MC_RTC_MAP2_8(fun, __VA_ARGS__))

◆ MC_RTC_MAP_TWO_ARGS

#define MC_RTC_MAP_TWO_ARGS (   fun,
  ... 
)

◆ MC_RTC_MSVC_diagnostic_ignored

#define MC_RTC_MSVC_diagnostic_ignored (   x)

◆ MC_RTC_PRAGMA

#define MC_RTC_PRAGMA (   x)    _Pragma(MC_RTC_STRINGIFY(x))

◆ MC_RTC_STRINGIFY

#define MC_RTC_STRINGIFY (   x)    MC_RTC_STRINGIFY_(x)

◆ MC_RTC_STRINGIFY_

#define MC_RTC_STRINGIFY_ (   x)    #x

Transform a expression to string

◆ MC_RTC_WN

#define MC_RTC_WN (   fun,
  ... 
)
Value:
MC_RTC_PRAGMA(message(__FILE__ "[" STRING(__LINE__) "] Incorrect number of arguments when invoking macro " STRING( \
fun) ". Call is ignored"))

Signal wrong number of arguments

MC_RTC_MAP2_6
#define MC_RTC_MAP2_6(fun, X, Y,...)
Definition: pragma.h:30
MC_RTC_MAP2_7
#define MC_RTC_MAP2_7(fun, X, Y,...)
Definition: pragma.h:31
MC_RTC_PRAGMA
#define MC_RTC_PRAGMA(x)
Definition: pragma.h:15
MC_RTC_MAP2_8
#define MC_RTC_MAP2_8(fun, X, Y,...)
Definition: pragma.h:32
MC_RTC_MAP2_9
#define MC_RTC_MAP2_9(fun, X, Y,...)
Definition: pragma.h:33
MC_RTC_MAP2_0
#define MC_RTC_MAP2_0(fun)
Definition: pragma.h:24
MC_RTC_WN
#define MC_RTC_WN(fun,...)
Definition: pragma.h:19
MC_RTC_PP_ID
#define MC_RTC_PP_ID(x)
Definition: pp_id.h:8
MC_RTC_MAP2_10
#define MC_RTC_MAP2_10(fun, X, Y,...)
Definition: pragma.h:34
MC_RTC_MAP2_5
#define MC_RTC_MAP2_5(fun, X, Y,...)
Definition: pragma.h:29
MC_RTC_MAP2_2
#define MC_RTC_MAP2_2(fun, X, Y,...)
Definition: pragma.h:26
MC_RTC_MAP2_4
#define MC_RTC_MAP2_4(fun, X, Y,...)
Definition: pragma.h:28
MC_RTC_GET_MACRO
#define MC_RTC_GET_MACRO(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, NAME,...)
Definition: pragma.h:36
MC_RTC_MAP2_3
#define MC_RTC_MAP2_3(fun, X, Y,...)
Definition: pragma.h:27
MC_RTC_MAP2_1
#define MC_RTC_MAP2_1(fun, X, Y)
Definition: pragma.h:25