Google OR-Tools v9.15
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
dump_vars.h File Reference
#include <optional>
#include <ostream>
#include <sstream>
#include <string>
#include <utility>
#include <vector>
#include "absl/container/inlined_vector.h"
#include "ortools/base/strong_vector.h"

Go to the source code of this file.

Classes

struct  operations_research::base::internal_dump_vars::print_fields
class  operations_research::base::internal_dump_vars::Dump< F >

Namespaces

namespace  operations_research
 OR-Tools root namespace.
namespace  operations_research::base
namespace  operations_research::base::internal_dump_vars

Macros

#define DUMP_FOR_EACH_N0(F)
#define DUMP_FOR_EACH_N1(F, a)
#define DUMP_FOR_EACH_N2(F, a, ...)
#define DUMP_FOR_EACH_N3(F, a, ...)
#define DUMP_FOR_EACH_N4(F, a, ...)
#define DUMP_FOR_EACH_N5(F, a, ...)
#define DUMP_FOR_EACH_N6(F, a, ...)
#define DUMP_FOR_EACH_N7(F, a, ...)
#define DUMP_FOR_EACH_N8(F, a, ...)
#define DUMP_FOR_EACH_N9(F, a, ...)
#define DUMP_FOR_EACH_N10(F, a, ...)
#define DUMP_FOR_EACH_N11(F, a, ...)
#define DUMP_FOR_EACH_N12(F, a, ...)
#define DUMP_CONCATENATE(x, y)
#define DUMP_FOR_EACH_(N, F, ...)
#define DUMP_NARG(...)
#define DUMP_NARG_(...)
#define DUMP_ARG_N(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, N, ...)
#define DUMP_RSEQ_N()
#define DUMP_FOR_EACH(F, ...)
#define DUMP_VARS(...)
#define DUMP_STRINGIZE(a)
#define DUMP_STRINGIFY(...)
#define DUMP_IDENTITY(...)
#define DUMP_RM_PARENS(...)
#define DUMP_GEN_ONE_BINDING(a)
#define DUMP_GEN_BINDING(binding)
#define DUMP_VARS_WITH_BINDINGS(binding, ...)

Typedefs

using operations_research::base::internal_dump_vars::DumpNames = ::std::vector<::std::string>

Functions

template<typename T>
std::ostream & operations_research::base::internal_dump_vars::operator<< (std::ostream &os, const ::absl::InlinedVector< T, 8 > &vec)
template<typename T>
std::ostream & operations_research::base::internal_dump_vars::operator<< (std::ostream &os, const ::std::vector< T > &vec)
template<typename T>
std::ostream & operations_research::base::internal_dump_vars::operator<< (std::ostream &os, const ::std::optional< T > &opt)
template<typename T, typename U>
std::ostream & operations_research::base::internal_dump_vars::operator<< (std::ostream &os, const ::util_intops::StrongVector< T, U > &vec)
template<class F>
Dump< F > operations_research::base::internal_dump_vars::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,
_9,
_10,
_11,
_12,
N,
... )
Value:
N

Definition at line 73 of file dump_vars.h.

◆ DUMP_CONCATENATE

#define DUMP_CONCATENATE ( x,
y )
Value:
x##y

Definition at line 67 of file dump_vars.h.

◆ DUMP_FOR_EACH

#define DUMP_FOR_EACH ( F,
... )
Value:
DUMP_FOR_EACH_(DUMP_NARG(__VA_ARGS__), F __VA_OPT__(, __VA_ARGS__))
#define DUMP_NARG(...)
Definition dump_vars.h:71
#define DUMP_FOR_EACH_(N, F,...)
Definition dump_vars.h:68

Definition at line 75 of file dump_vars.h.

◆ DUMP_FOR_EACH_

#define DUMP_FOR_EACH_ ( N,
F,
... )
Value:
DUMP_CONCATENATE(DUMP_FOR_EACH_N, N)(F __VA_OPT__(, __VA_ARGS__))
#define DUMP_CONCATENATE(x, y)
Definition dump_vars.h:67

Definition at line 68 of file dump_vars.h.

◆ DUMP_FOR_EACH_N0

#define DUMP_FOR_EACH_N0 ( F)

Definition at line 53 of file dump_vars.h.

◆ DUMP_FOR_EACH_N1

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

Definition at line 54 of file dump_vars.h.

◆ DUMP_FOR_EACH_N10

#define DUMP_FOR_EACH_N10 ( F,
a,
... )
Value:
F(a) DUMP_FOR_EACH_N9(F, __VA_ARGS__)
#define DUMP_FOR_EACH_N9(F, a,...)
Definition dump_vars.h:62

Definition at line 63 of file dump_vars.h.

◆ DUMP_FOR_EACH_N11

#define DUMP_FOR_EACH_N11 ( F,
a,
... )
Value:
F(a) DUMP_FOR_EACH_N10(F, __VA_ARGS__)
#define DUMP_FOR_EACH_N10(F, a,...)
Definition dump_vars.h:63

Definition at line 64 of file dump_vars.h.

◆ DUMP_FOR_EACH_N12

#define DUMP_FOR_EACH_N12 ( F,
a,
... )
Value:
F(a) DUMP_FOR_EACH_N11(F, __VA_ARGS__)
#define DUMP_FOR_EACH_N11(F, a,...)
Definition dump_vars.h:64

Definition at line 65 of file dump_vars.h.

◆ DUMP_FOR_EACH_N2

#define DUMP_FOR_EACH_N2 ( F,
a,
... )
Value:
F(a) DUMP_FOR_EACH_N1(F, __VA_ARGS__)
#define DUMP_FOR_EACH_N1(F, a)
Definition dump_vars.h:54

Definition at line 55 of file dump_vars.h.

◆ DUMP_FOR_EACH_N3

#define DUMP_FOR_EACH_N3 ( F,
a,
... )
Value:
F(a) DUMP_FOR_EACH_N2(F, __VA_ARGS__)
#define DUMP_FOR_EACH_N2(F, a,...)
Definition dump_vars.h:55

Definition at line 56 of file dump_vars.h.

◆ DUMP_FOR_EACH_N4

#define DUMP_FOR_EACH_N4 ( F,
a,
... )
Value:
F(a) DUMP_FOR_EACH_N3(F, __VA_ARGS__)
#define DUMP_FOR_EACH_N3(F, a,...)
Definition dump_vars.h:56

Definition at line 57 of file dump_vars.h.

◆ DUMP_FOR_EACH_N5

#define DUMP_FOR_EACH_N5 ( F,
a,
... )
Value:
F(a) DUMP_FOR_EACH_N4(F, __VA_ARGS__)
#define DUMP_FOR_EACH_N4(F, a,...)
Definition dump_vars.h:57

Definition at line 58 of file dump_vars.h.

◆ DUMP_FOR_EACH_N6

#define DUMP_FOR_EACH_N6 ( F,
a,
... )
Value:
F(a) DUMP_FOR_EACH_N5(F, __VA_ARGS__)
#define DUMP_FOR_EACH_N5(F, a,...)
Definition dump_vars.h:58

Definition at line 59 of file dump_vars.h.

◆ DUMP_FOR_EACH_N7

#define DUMP_FOR_EACH_N7 ( F,
a,
... )
Value:
F(a) DUMP_FOR_EACH_N6(F, __VA_ARGS__)
#define DUMP_FOR_EACH_N6(F, a,...)
Definition dump_vars.h:59

Definition at line 60 of file dump_vars.h.

◆ DUMP_FOR_EACH_N8

#define DUMP_FOR_EACH_N8 ( F,
a,
... )
Value:
F(a) DUMP_FOR_EACH_N7(F, __VA_ARGS__)
#define DUMP_FOR_EACH_N7(F, a,...)
Definition dump_vars.h:60

Definition at line 61 of file dump_vars.h.

◆ DUMP_FOR_EACH_N9

#define DUMP_FOR_EACH_N9 ( F,
a,
... )
Value:
F(a) DUMP_FOR_EACH_N8(F, __VA_ARGS__)
#define DUMP_FOR_EACH_N8(F, a,...)
Definition dump_vars.h:61

Definition at line 62 of file dump_vars.h.

◆ DUMP_GEN_BINDING

#define DUMP_GEN_BINDING ( binding)
Value:
#define DUMP_FOR_EACH(F,...)
Definition dump_vars.h:75
#define DUMP_RM_PARENS(...)
Definition dump_vars.h:87
#define DUMP_GEN_ONE_BINDING(a)
Definition dump_vars.h:89

Definition at line 90 of file dump_vars.h.

◆ DUMP_GEN_ONE_BINDING

#define DUMP_GEN_ONE_BINDING ( a)
Value:
, &a = a

Definition at line 89 of file dump_vars.h.

◆ DUMP_IDENTITY

#define DUMP_IDENTITY ( ...)
Value:
__VA_ARGS__

Definition at line 85 of file dump_vars.h.

◆ DUMP_NARG

#define DUMP_NARG ( ...)
Value:
DUMP_NARG_(__VA_OPT__(__VA_ARGS__, ) DUMP_RSEQ_N())
#define DUMP_RSEQ_N()
Definition dump_vars.h:74
#define DUMP_NARG_(...)
Definition dump_vars.h:72

Definition at line 71 of file dump_vars.h.

◆ DUMP_NARG_

#define DUMP_NARG_ ( ...)
Value:
DUMP_ARG_N(__VA_ARGS__)
#define DUMP_ARG_N(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, N,...)
Definition dump_vars.h:73

Definition at line 72 of file dump_vars.h.

◆ DUMP_RM_PARENS

#define DUMP_RM_PARENS ( ...)
Value:
DUMP_IDENTITY __VA_ARGS__
#define DUMP_IDENTITY(...)
Definition dump_vars.h:85

Definition at line 87 of file dump_vars.h.

◆ DUMP_RSEQ_N

#define DUMP_RSEQ_N ( )
Value:
12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0

Definition at line 74 of file dump_vars.h.

◆ DUMP_STRINGIFY

#define DUMP_STRINGIFY ( ...)
Value:
#define DUMP_STRINGIZE(a)
Definition dump_vars.h:81

Definition at line 82 of file dump_vars.h.

◆ DUMP_STRINGIZE

#define DUMP_STRINGIZE ( a)
Value:
#a,

Definition at line 81 of file dump_vars.h.

◆ DUMP_VARS

#define DUMP_VARS ( ...)
Value:
DUMP_VARS_WITH_BINDINGS((), __VA_ARGS__)
#define DUMP_VARS_WITH_BINDINGS(binding,...)
Definition dump_vars.h:93

Definition at line 78 of file dump_vars.h.

◆ DUMP_VARS_WITH_BINDINGS

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

Definition at line 93 of file dump_vars.h.