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++ 内部编译器错误:gcc中的分段错误。向结构发送变量模板时_C++_Templates_Gcc_C++11_Variadic Templates - Fatal编程技术网

C++ 内部编译器错误:gcc中的分段错误。向结构发送变量模板时

C++ 内部编译器错误:gcc中的分段错误。向结构发送变量模板时,c++,templates,gcc,c++11,variadic-templates,C++,Templates,Gcc,C++11,Variadic Templates,我正在尝试编译以下代码: #include <iostream> template<template <typename...> class Container,class... Args> struct Container {}; template<class T1,class T2> struct Store {}; int main() { Container<Store,int,double> a; } //g++

我正在尝试编译以下代码:

#include <iostream>

template<template <typename...> class Container,class... Args>
struct Container
{};

template<class T1,class T2>
struct Store
{};

int main()
{
    Container<Store,int,double> a;
}
//g++ -Wall -std=c++11 main.cpp

为什么gcc不编译它?代码正确吗?

用叮当声编译会显示错误:

main.cpp:4:8: error: declaration of 'Container' shadows template parameter
struct Container
如果重命名结构或模板参数,代码也会在g++中编译,我不知道它们的相同名称是偶然的还是故意的



此外,g++4.8.2和4.9工作正常,并给出与Clang类似的错误。

但真正的问题仍然是GCC中的一个bug。感谢您澄清了这个问题。@user2799037,真正的问题是OP代码中的错误,但它显然揭示了gcc中的一个错误,它阻止了正确的错误消息生成。@user2799037是的,它是。但是如果它是偶然的,OP可以继续并提交一份bug报告。(尽管后者在使用g++4.9时似乎没有必要)我在vs2013中尝试过编译它。它编译得很好(没有任何警告),VS2013似乎接受
模板结构T{}–尽管它没有多大意义。
main.cpp:4:8: error: declaration of 'Container' shadows template parameter
struct Container