我有一个可变参数模板函数,它将文件名、分隔符和非指定数量的容器作为参数作为列。然后,该函数解析并归档表示列的容器中的所有值,并在所有值之间放置分隔符。
bool parseToFile (const std::string& file, const char delimiter, auto&... columns)
{
bool done {false};
std::ofstream out;
out.open (file, std::ios::out | std::ios::trunc);
if (!out)
{
done = false;
std::cout << "SaveFile: Cannot open file: " << file << "!" ;
std::cout << std::strerror (errno) << std::endl;
}
else
{
std::size_t maxContainerSize {0};
auto maxSize = [&maxContainerSize] (std::size_t containerSize)
{
maxContainerSize = std::max (maxContainerSize, containerSize);
};
(maxSize (columns.size()), ...);
std::size_t i {0};
auto implementation = [&i, delimiter, &out] (auto & cont, …Run Code Online (Sandbox Code Playgroud)