preCICE
v3.2.0
Toggle main menu visibility
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
Variables
_
a
b
c
d
e
f
h
i
m
n
p
r
s
t
Typedefs
b
d
e
g
l
m
p
r
s
t
u
v
Enumerations
Enumerator
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
~
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
~
Variables
_
a
b
c
d
e
f
g
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Typedefs
a
b
c
d
e
f
i
k
m
n
o
p
r
s
t
v
w
Enumerations
Enumerator
c
d
e
i
l
m
n
o
r
s
u
v
w
Related Symbols
Files
File List
File Members
All
_
a
b
c
d
e
g
i
j
m
n
o
p
r
s
t
v
Functions
a
b
c
g
m
p
r
s
t
v
Variables
Typedefs
Macros
b
d
m
n
p
t
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Loading...
Searching...
No Matches
src
utils
ArgumentFormatter.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <boost/preprocessor/control/if.hpp>
4
#include <boost/preprocessor/seq/for_each_i.hpp>
5
#include <boost/preprocessor/stringize.hpp>
6
#include <boost/preprocessor/variadic/to_seq.hpp>
7
#include <boost/vmd/is_empty.hpp>
8
9
#include "
utils/fmt.hpp
"
10
12
#define PRECICE_LOG_ARGUMENTS_FMT(r, data, i, elem) \
13
" " BOOST_PP_STRINGIZE(i) ": " BOOST_PP_STRINGIZE(elem) " == {}\n"
12
#define PRECICE_LOG_ARGUMENTS_FMT(r, data, i, elem) \
…
14
15
#define PRECICE_LOG_ARGUMENTS(...) \
16
BOOST_PP_IF(BOOST_VMD_IS_EMPTY(__VA_ARGS__), \
17
"", \
18
::precice::utils::format_or_error( \
19
"\n" BOOST_PP_SEQ_FOR_EACH_I(PRECICE_LOG_ARGUMENTS_FMT, , BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__)), \
20
__VA_ARGS__))
15
#define PRECICE_LOG_ARGUMENTS(...) \
…
fmt.hpp