Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;17使用模板参数推断指南继承lambda集_C++_Lambda_Multiple Inheritance_Template Argument Deduction_C++17 - Fatal编程技术网

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) << ' '; },
           };