Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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++_Templates_Template Argument Deduction_Aggregate Initialization - Fatal编程技术网

C++ 模板扣减指南失败,为';初始化者太多';错误

C++ 模板扣减指南失败,为';初始化者太多';错误,c++,templates,template-argument-deduction,aggregate-initialization,C++,Templates,Template Argument Deduction,Aggregate Initialization,我正在阅读模板演绎,然后尝试创建一个。 详情如下:- #包括 #包括 使用名称空间std; 模板结构{ }; //扣除指南 模板扣除(A、B、B)->扣除; // int main(){ 扣除a={“”,“”}; 扣除b={0,0,0}; 数组c={0,0,0}; } 让我感到欣慰的是,测试失败了,出现了错误:太多的初始值设定项用于“扣除”,但是std::array版本工作正常。我可能遗漏了什么,还有谁能重写得更好吗?演绎是可行的,但随后,构建失败了 提供构造函数。(或用于聚合初始化的适当成员

我正在阅读模板演绎,然后尝试创建一个。 详情如下:-

#包括
#包括
使用名称空间std;
模板结构{
};
//扣除指南
模板扣除(A、B、B)->扣除;
//
int main(){
扣除a={“”,“”};
扣除b={0,0,0};
数组c={0,0,0};
}

让我感到欣慰的是,测试失败了,出现了
错误:太多的初始值设定项用于“扣除”
,但是
std::array
版本工作正常。我可能遗漏了什么,还有谁能重写得更好吗?

演绎是可行的,但随后,构建失败了


提供构造函数。(或用于聚合初始化的适当成员)。

您有太多的初始值设定项,因为没有收到您初始化它所用的内容

示例修复程序:

#include <type_traits>

template<int i, typename A, typename... B>
struct deducted{
    A a;
    std::common_type_t<B...> arr[sizeof...(B)];
};
#包括
模板
结构扣除{
A A;
标准:通用型阵列[sizeof…(B)];
};

我没有看到构造函数。所以我试着复制相同的内容。这里有聚合初始化。