24 namespace serialization
52 template <
class t_RawNode>
89 Node(
const std::size_t index,
const std::size_t size) :
index_(index),
size_(size)
95 Node(t_RawNode node,
const std::size_t index,
const std::size_t size)
124 template <
class t_Node>
136 [[nodiscard]]
const t_Node &
back()
const
146 template <
class... t_Args>
149 node_stack_.emplace_back(std::forward<t_Args>(args)...);
169 template <
typename... t_String>
175 template <
typename... t_String>
183 template <
class t_Visitor,
class t_Implementation>
188 using ImplPtr = std::shared_ptr<t_Implementation>;
201 template <
class... t_Args>
204 impl_ = std::make_shared<Impl>(std::forward<t_Args>(args)...);
209 template <
class t_Derived,
class t_Parameters>
std::vector< t_Node > node_stack_
std::string concatWithNode(t_String &&...strings) const
void emplace(t_Args &&...args)
void concatWithNodeAndEmplace(t_String &&...strings)
const t_Node & back() const
Node(t_RawNode node, const Type type=Type::GENERIC)
Node(t_RawNode node, const std::size_t index, const std::size_t size)
Node(const Type type=Type::GENERIC)
Node(const std::size_t index, const std::size_t size)
std::shared_ptr< t_Implementation > ImplPtr
PIMPLVisitor(const PIMPLVisitor &)
void makeImplPtr(t_Args &&...args)
PIMPLVisitor & operator=(const PIMPLVisitor &)
bool fallback_to_string_floats_
Specify matrix size even if it is known to be constant.
bool persistent_structure_
Do not treat missing entries as errors.
bool allow_missing_entries_
Save matrix as a single vector.
bool flat_matrices_
Allow saving floats as strings if necessary.
bool sloppy_pairs_
Treat key values in maps as entry names if they are strings.
Parameters(const bool override_parameters=true)
Hint: expect Ariles classes with constant number of entries.
bool explicit_matrix_size_
Treat first entry in an std::pair as entry name if it is a string.
#define CPPUT_ASSERT(condition,...)
std::string simple(t_String &&...strings)
#define CPPUT_TRACE_FUNCTION