小编Tom*_*hal的帖子

可变参数模板和约束

我有一个可变参数模板函数,它将文件名、分隔符和非指定数量的容器作为参数作为列。然后,该函数解析并归档表示列的容器中的所有值,并在所有值之间放置分隔符。

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)

c++ constraints variadic-templates c++20

3
推荐指数
1
解决办法
124
查看次数

标签 统计

c++ ×1

c++20 ×1

constraints ×1

variadic-templates ×1