GDB (xrefs)
Macros
valid-expr.h File Reference
#include "common/preprocessor.h"
#include "common/traits.h"

Go to the source code of this file.

Macros

#define CHECK_VALID_EXPR_INT(TYPENAMES, TYPES, VALID, EXPR_TYPE, EXPR)
 
#define CHECK_VALID_EXPR_1(T1, VALID, EXPR_TYPE, EXPR)
 
#define CHECK_VALID_EXPR_2(T1, T2, VALID, EXPR_TYPE, EXPR)
 
#define CHECK_VALID_EXPR_3(T1, T2, T3, VALID, EXPR_TYPE, EXPR)
 
#define CHECK_VALID_EXPR_4(T1, T2, T3, T4, VALID, EXPR_TYPE, EXPR)
 

Macro Definition Documentation

◆ CHECK_VALID_EXPR_1

#define CHECK_VALID_EXPR_1 (   T1,
  VALID,
  EXPR_TYPE,
  EXPR 
)
Value:
CHECK_VALID_EXPR_INT (ESC (typename T1), \
ESC (T1), \
VALID, EXPR_TYPE, EXPR)
#define ESC(...)
Definition: preprocessor.h:33
#define CHECK_VALID_EXPR_INT(TYPENAMES, TYPES, VALID, EXPR_TYPE, EXPR)
Definition: valid-expr.h:58

Definition at line 87 of file valid-expr.h.

◆ CHECK_VALID_EXPR_2

#define CHECK_VALID_EXPR_2 (   T1,
  T2,
  VALID,
  EXPR_TYPE,
  EXPR 
)
Value:
CHECK_VALID_EXPR_INT (ESC (typename T1, typename T2), \
ESC (T1, T2), \
VALID, EXPR_TYPE, EXPR)
#define ESC(...)
Definition: preprocessor.h:33
#define CHECK_VALID_EXPR_INT(TYPENAMES, TYPES, VALID, EXPR_TYPE, EXPR)
Definition: valid-expr.h:58

Definition at line 92 of file valid-expr.h.

◆ CHECK_VALID_EXPR_3

#define CHECK_VALID_EXPR_3 (   T1,
  T2,
  T3,
  VALID,
  EXPR_TYPE,
  EXPR 
)
Value:
CHECK_VALID_EXPR_INT (ESC (typename T1, typename T2, typename T3), \
ESC (T1, T2, T3), \
VALID, EXPR_TYPE, EXPR)
#define ESC(...)
Definition: preprocessor.h:33
#define CHECK_VALID_EXPR_INT(TYPENAMES, TYPES, VALID, EXPR_TYPE, EXPR)
Definition: valid-expr.h:58

Definition at line 97 of file valid-expr.h.

◆ CHECK_VALID_EXPR_4

#define CHECK_VALID_EXPR_4 (   T1,
  T2,
  T3,
  T4,
  VALID,
  EXPR_TYPE,
  EXPR 
)
Value:
CHECK_VALID_EXPR_INT (ESC (typename T1, typename T2, \
typename T3, typename T4), \
ESC (T1, T2, T3, T4), \
VALID, EXPR_TYPE, EXPR)
#define ESC(...)
Definition: preprocessor.h:33
#define CHECK_VALID_EXPR_INT(TYPENAMES, TYPES, VALID, EXPR_TYPE, EXPR)
Definition: valid-expr.h:58

Definition at line 102 of file valid-expr.h.

◆ CHECK_VALID_EXPR_INT

#define CHECK_VALID_EXPR_INT (   TYPENAMES,
  TYPES,
  VALID,
  EXPR_TYPE,
  EXPR 
)
Value:
namespace CONCAT (check_valid_expr, __LINE__) { \
\
template<typename, typename, typename = void> \
struct is_valid_expression \
: std::false_type {}; \
\
template <TYPENAMES> \
struct is_valid_expression<TYPES, gdb::void_t<decltype (EXPR)>> \
: std::true_type {}; \
\
static_assert (is_valid_expression<TYPES>::value == VALID, \
""); \
\
template<TYPENAMES, typename = void> \
struct is_same_type \
: std::is_same<EXPR_TYPE, void> {}; \
\
template <TYPENAMES> \
struct is_same_type<TYPES, gdb::void_t<decltype (EXPR)>> \
: std::is_same<EXPR_TYPE, decltype (EXPR)> {}; \
\
static_assert (is_same_type<TYPES>::value, ""); \
} /* namespace */
#define CONCAT(a, b)
Definition: preprocessor.h:25

Definition at line 58 of file valid-expr.h.