C++ C++;17使用模板参数推断指南继承lambda集
我在看关于C++ C++;17使用模板参数推断指南继承lambda集,c++,lambda,multiple-inheritance,template-argument-deduction,c++17,C++,Lambda,Multiple Inheritance,Template Argument Deduction,C++17,我在看关于std::variant 该示例基本上包含以下行(由我略微修改): 模板结构重载:Ts。。。{使用Ts::运算符()…;}; 模板重载(Ts…)->重载; 自动a=过载{ [](auto arg){std::cout它是结果类型的直接公共基。由于C++17,基子对象本身不必是聚合的,它们是从初始化器列表的元素中复制初始化的。检查自C++11以来的聚合初始化 template<class... Ts> struct overloaded : Ts... { using Ts:
std::variant
该示例基本上包含以下行(由我略微修改):
模板结构重载:Ts。。。{使用Ts::运算符()…;};
模板重载(Ts…)->重载;
自动a=过载{
[](auto arg){std::cout它是结果类型的直接公共基。由于C++17,基子对象本身不必是聚合的,它们是从初始化器列表的元素中复制初始化的。检查自C++11以来的聚合初始化
template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
template<class... Ts> overloaded(Ts...) -> overloaded<Ts...>;
auto a = overloaded {
[](auto arg) { std::cout << arg << ' '; },
[](double arg) { std::cout << std::fixed << arg << ' '; },
[](const std::string& arg) { std::cout << std::quoted(arg) << ' '; },
};