26 const std::string&
name,
const std::string& type,
const std::string& unit,
27 const std::string& desc, std::ios_base::fmtflags flags,
unsigned short prec)
29 description_m(
std::make_tuple(type, unit, desc)),
31 writePrecision_m(prec),
33 constexpr std::array<std::ios_base::fmtflags, 3> numericalBase{
34 std::ios_base::dec, std::ios_base::hex, std::ios_base::oct};
36 constexpr std::array<std::ios_base::fmtflags, 2> floatFormat{
37 std::ios_base::fixed, std::ios_base::scientific};
39 constexpr std::array<std::ios_base::fmtflags, 3> adjustmentFlags{
40 std::ios_base::internal, std::ios_base::left, std::ios_base::right};
43 for (std::ios_base::fmtflags flag : numericalBase) {
49 for (std::ios_base::fmtflags flag : floatFormat) {
55 for (std::ios_base::fmtflags flag : adjustmentFlags) {
64 std::ostream& os,
unsigned int colNr,
const std::string& indent)
const {
66 << indent <<
"name=" <<
name_m <<
",\n"
70 os << indent <<
"units=" << std::get<1>(
description_m) <<
",\n";
72 os << indent <<
"description=\"" << colNr <<
" " << std::get<2>(
description_m) <<
"\"\n"
79 "SDDSColumn::writeValue",
"value for column '" +
name_m +
"' isn't set");
87 using T = std::decay_t<
decltype(
arg)>;
88 if constexpr (std::is_arithmetic_v<T>) {
90 os << static_cast<double>(
arg);
95 os << std::setw(10) <<
"\t";
SDDSColumn(const std::string &name, const std::string &type, const std::string &unit, const std::string &desc, std::ios_base::fmtflags flags, unsigned short precision)