12#ifndef ARCANE_UTILS_TRACEACCESSOR2_H
13#define ARCANE_UTILS_TRACEACCESSOR2_H
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/String.h"
23namespace Arcane::internal
32class ARCANE_UTILS_EXPORT TraceAccessor2
43 bool isActive()
const {
return m_is_active; }
47 bool m_is_active =
false;
55 TracePrinter(
const char* name,
const T& r)
59 friend std::ostream& operator<<(std::ostream& o,
const TracePrinter<T>& x)
61 o <<
" " << x.m_name <<
"=" << x.m_r;
72inline TracePrinter<T> makeTracePrinter(
const char* name,
const T& field_name)
77template <
typename... Args>
String
78format2(
const String& str,
const Args&... args)
80 return String::format(str, args...);
87isTraceActive(
const TraceAccessor2* tr)
89 return tr->isActive();
92#define A_TR(field_name) Arcane::internal::makeTracePrinter(#field_name, field_name)
94#define A_TR2(name, field_name) Arcane::internal::makeTracePrinter(name, field_name)
98 if (Arcane::internal::isTraceActive(this)) { \
99 info() << Arcane::String::format(__VA_ARGS__); \
Unicode character string.
TraceAccessor(ITraceMng *m)
Constructs an accessor via the trace manager m.