想象一下,我有一个带有可变参数概念模板成员的可变参数概念模板类。
#include <type_traits>
template<typename T>
concept Arithmetic = std::is_arithmetic_v<T>;
template<Arithmetic... Scalars>
class Foo
{
public:
template<Arithmetic... OtherScalars>
Foo(OtherScalars&&... args)
{
}
};
以上代码无法使用GCC (trunk)
进行编译,但是可以使用Clang (experimental concepts)
进行编译。
GCC编译器输出
source>: In instantiation of 'class Foo<int, float, double>':
<source>:20:33: required from here
<source>:11:5: internal compiler error: in tsubst_constraint, at cp/constraint.cc:1949
11 | Foo(OtherScalars&&... args)
| ^~~
Please submit a full bug report, with preprocessed source if appropriate. See <https://gcc.gnu.org/bugs/> for instructions.
ASM generation compiler returned: 1
这是GCC
中的错误吗?还是我在这里做错了什么?
答案 0 :(得分:1)
是的,这是一个错误。输出字面意思是这样,并要求您报告错误报告。