#ifndef CSV_PRINTER_HPP #define CSV_PRINTER_HPP #include #include namespace print_csv_line_impl { template bool print_csv_args(std::ostream& out, Arg&& arg) { out << "," << arg; return !!out; } template bool print_csv_args(std::ostream& out, Arg&& arg, Args&&... args) { return print_csv_args(out, arg) && print_csv_args(out, std::forward(args)...); } } // namespace print_csv_line_impl template bool print_csv_line(std::ostream& out, Arg&& arg, Args&&... args) { if (out << arg && print_csv_line_impl::print_csv_args(out, std::forward(args)...)) { out << std::endl; } return !!out; } #endif