gpt4 book ai didi

c++ - 默认模板参数的非冲突重新定义

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:00:28 25 4
gpt4 key购买 nike

我知道(here 是一个来源)只要这两个定义不冲突,就可以重新定义默认模板参数。因此,我正在尝试使用 g++ 5.3.1 编译以下内容:

template <class = int> class A; // forward declaration
template <class T = A<>> struct B {};

template <class T = int> class A {}; // "= int" here is for clarity

int main() { return 0; }

编译器提示:

error: redefinition of default argument for ‘class T’

我的理解哪里不对?

最佳答案

您不能重新定义默认模板参数。

当你写 template <class T = int> class A {};您正在重新定义此默认参数,这就是您收到错误的原因。您必须选择一个位置来放置该默认参数(前向声明或实际定义)。

关于c++ - 默认模板参数的非冲突重新定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38437765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com