OR-Tools  9.6
dump_vars.h File Reference

Go to the source code of this file.

Classes

struct  print_fields
 
class  Dump< F >
 

Namespaces

 operations_research
 Collection of objects used to extend the Constraint Solver library.
 
 operations_research::base
 
 operations_research::base::internal_dump_vars
 

Macros

#define DUMP_FOR_EACH_N0(F)
 
#define DUMP_FOR_EACH_N1(F, a)   F(a)
 
#define DUMP_FOR_EACH_N2(F, a, ...)   F(a) DUMP_FOR_EACH_N1(F, __VA_ARGS__)
 
#define DUMP_FOR_EACH_N3(F, a, ...)   F(a) DUMP_FOR_EACH_N2(F, __VA_ARGS__)
 
#define DUMP_FOR_EACH_N4(F, a, ...)   F(a) DUMP_FOR_EACH_N3(F, __VA_ARGS__)
 
#define DUMP_FOR_EACH_N5(F, a, ...)   F(a) DUMP_FOR_EACH_N4(F, __VA_ARGS__)
 
#define DUMP_FOR_EACH_N6(F, a, ...)   F(a) DUMP_FOR_EACH_N5(F, __VA_ARGS__)
 
#define DUMP_FOR_EACH_N7(F, a, ...)   F(a) DUMP_FOR_EACH_N6(F, __VA_ARGS__)
 
#define DUMP_FOR_EACH_N8(F, a, ...)   F(a) DUMP_FOR_EACH_N7(F, __VA_ARGS__)
 
#define DUMP_CONCATENATE(x, y)   x##y
 
#define DUMP_FOR_EACH_(N, F, ...)    DUMP_CONCATENATE(DUMP_FOR_EACH_N, N)(F __VA_OPT__(, __VA_ARGS__))
 
#define DUMP_NARG(...)   DUMP_NARG_(__VA_OPT__(__VA_ARGS__, ) DUMP_RSEQ_N())
 
#define DUMP_NARG_(...)   DUMP_ARG_N(__VA_ARGS__)
 
#define DUMP_ARG_N(_1, _2, _3, _4, _5, _6, _7, _8, N, ...)   N
 
#define DUMP_RSEQ_N()   8, 7, 6, 5, 4, 3, 2, 1, 0
 
#define DUMP_FOR_EACH(F, ...)    DUMP_FOR_EACH_(DUMP_NARG(__VA_ARGS__), F __VA_OPT__(, __VA_ARGS__))
 
#define DUMP_VARS(...)   DUMP_VARS_WITH_BINDINGS((), __VA_ARGS__)
 
#define DUMP_STRINGIZE(a)   #a,
 
#define DUMP_STRINGIFY(...)   DUMP_FOR_EACH(DUMP_STRINGIZE, __VA_ARGS__)
 
#define DUMP_IDENTITY(...)   __VA_ARGS__
 
#define DUMP_RM_PARENS(...)   DUMP_IDENTITY __VA_ARGS__
 
#define DUMP_GEN_ONE_BINDING(a)   , &a = a
 
#define DUMP_GEN_BINDING(binding)    &DUMP_FOR_EACH(DUMP_GEN_ONE_BINDING, DUMP_RM_PARENS(binding))
 
#define DUMP_VARS_WITH_BINDINGS(binding, ...)
 

Typedefs

using DumpNames = ::std::vector<::std::string >
 

Functions

template<typename T >
std::ostream & operator<< (std::ostream &os, const ::absl::InlinedVector< T, 8 > &vec)
 
template<class F >
Dump< F > make_dump_vars (DumpNames &&names, F f)
 

Macro Definition Documentation

◆ DUMP_ARG_N

#define DUMP_ARG_N (   _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8,
  N,
  ... 
)    N

Definition at line 68 of file dump_vars.h.

◆ DUMP_CONCATENATE

#define DUMP_CONCATENATE (   x,
 
)    x##y

Definition at line 62 of file dump_vars.h.

◆ DUMP_FOR_EACH

#define DUMP_FOR_EACH (   F,
  ... 
)     DUMP_FOR_EACH_(DUMP_NARG(__VA_ARGS__), F __VA_OPT__(, __VA_ARGS__))

Definition at line 70 of file dump_vars.h.

◆ DUMP_FOR_EACH_

#define DUMP_FOR_EACH_ (   N,
  F,
  ... 
)     DUMP_CONCATENATE(DUMP_FOR_EACH_N, N)(F __VA_OPT__(, __VA_ARGS__))

Definition at line 63 of file dump_vars.h.

◆ DUMP_FOR_EACH_N0

#define DUMP_FOR_EACH_N0 (   F)

Definition at line 52 of file dump_vars.h.

◆ DUMP_FOR_EACH_N1

#define DUMP_FOR_EACH_N1 (   F,
  a 
)    F(a)

Definition at line 53 of file dump_vars.h.

◆ DUMP_FOR_EACH_N2

#define DUMP_FOR_EACH_N2 (   F,
  a,
  ... 
)    F(a) DUMP_FOR_EACH_N1(F, __VA_ARGS__)

Definition at line 54 of file dump_vars.h.

◆ DUMP_FOR_EACH_N3

#define DUMP_FOR_EACH_N3 (   F,
  a,
  ... 
)    F(a) DUMP_FOR_EACH_N2(F, __VA_ARGS__)

Definition at line 55 of file dump_vars.h.

◆ DUMP_FOR_EACH_N4

#define DUMP_FOR_EACH_N4 (   F,
  a,
  ... 
)    F(a) DUMP_FOR_EACH_N3(F, __VA_ARGS__)

Definition at line 56 of file dump_vars.h.

◆ DUMP_FOR_EACH_N5

#define DUMP_FOR_EACH_N5 (   F,
  a,
  ... 
)    F(a) DUMP_FOR_EACH_N4(F, __VA_ARGS__)

Definition at line 57 of file dump_vars.h.

◆ DUMP_FOR_EACH_N6

#define DUMP_FOR_EACH_N6 (   F,
  a,
  ... 
)    F(a) DUMP_FOR_EACH_N5(F, __VA_ARGS__)

Definition at line 58 of file dump_vars.h.

◆ DUMP_FOR_EACH_N7

#define DUMP_FOR_EACH_N7 (   F,
  a,
  ... 
)    F(a) DUMP_FOR_EACH_N6(F, __VA_ARGS__)

Definition at line 59 of file dump_vars.h.

◆ DUMP_FOR_EACH_N8

#define DUMP_FOR_EACH_N8 (   F,
  a,
  ... 
)    F(a) DUMP_FOR_EACH_N7(F, __VA_ARGS__)

Definition at line 60 of file dump_vars.h.

◆ DUMP_GEN_BINDING

#define DUMP_GEN_BINDING (   binding)     &DUMP_FOR_EACH(DUMP_GEN_ONE_BINDING, DUMP_RM_PARENS(binding))

Definition at line 85 of file dump_vars.h.

◆ DUMP_GEN_ONE_BINDING

#define DUMP_GEN_ONE_BINDING (   a)    , &a = a

Definition at line 84 of file dump_vars.h.

◆ DUMP_IDENTITY

#define DUMP_IDENTITY (   ...)    __VA_ARGS__

Definition at line 80 of file dump_vars.h.

◆ DUMP_NARG

#define DUMP_NARG (   ...)    DUMP_NARG_(__VA_OPT__(__VA_ARGS__, ) DUMP_RSEQ_N())

Definition at line 66 of file dump_vars.h.

◆ DUMP_NARG_

#define DUMP_NARG_ (   ...)    DUMP_ARG_N(__VA_ARGS__)

Definition at line 67 of file dump_vars.h.

◆ DUMP_RM_PARENS

#define DUMP_RM_PARENS (   ...)    DUMP_IDENTITY __VA_ARGS__

Definition at line 82 of file dump_vars.h.

◆ DUMP_RSEQ_N

#define DUMP_RSEQ_N ( )    8, 7, 6, 5, 4, 3, 2, 1, 0

Definition at line 69 of file dump_vars.h.

◆ DUMP_STRINGIFY

#define DUMP_STRINGIFY (   ...)    DUMP_FOR_EACH(DUMP_STRINGIZE, __VA_ARGS__)

Definition at line 77 of file dump_vars.h.

◆ DUMP_STRINGIZE

#define DUMP_STRINGIZE (   a)    #a,

Definition at line 76 of file dump_vars.h.

◆ DUMP_VARS

#define DUMP_VARS (   ...)    DUMP_VARS_WITH_BINDINGS((), __VA_ARGS__)

Definition at line 73 of file dump_vars.h.

◆ DUMP_VARS_WITH_BINDINGS

#define DUMP_VARS_WITH_BINDINGS (   binding,
  ... 
)
Value:
::operations_research::base::internal_dump_vars::make_dump_vars<>( \
DUMP_STRINGIFY(__VA_ARGS__)}, \
[DUMP_GEN_BINDING(binding)]( \
::std::ostream& os, const ::std::string& field_sep, \
const ::std::string& kv_sep, \
names) { \
.os = os, \
.field_sep = field_sep, \
.kv_sep = kv_sep, \
.names = names, \
}(__VA_ARGS__); \
})
#define DUMP_GEN_BINDING(binding)
Definition: dump_vars.h:85
::std::vector<::std::string > DumpNames
Definition: dump_vars.h:118

Definition at line 88 of file dump_vars.h.