std :: visit和“重载”示例

时间:2018-08-11 23:07:12

标签: c++ c++17 variant

see example中的overloaded魔法如何

template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
template<class... Ts> overloaded(Ts...) -> overloaded<Ts...>; // how to read this line??

for (auto& v: vec) {
        std::visit(overloaded {
            [](auto arg) { std::cout << arg << ' '; },
            [](double arg) { std::cout << std::fixed << arg << ' '; },
            [](const std::string& arg) { std::cout << std::quoted(arg) << ' '; },
        }, v);
    }

工作,这意味着如何阅读上面标记的行? overload(Ts...)是什么“功能”,这是什么样的C ++ 14/17功能?

感谢提示以及对在哪里可以找到这种语法的标准的一些参考? (我眼花)乱)

0 个答案:

没有答案