相关疑难解决方法(0)

C++模板函数的默认值

是否可以在C++中为模板函数的变量定义默认值?

如下所示:

template<class T> T sum(T a, T b, T c=????)
{
     return a + b + c;
}
Run Code Online (Sandbox Code Playgroud)

c++ templates default-value

7
推荐指数
2
解决办法
1万
查看次数

默认模板参数的无冲突重新定义

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

\n\n
template <class = int> class A; // forward declaration\ntemplate <class T = A<>> struct B {};\n\ntemplate <class T = int> class A {}; // "= int" here is for clarity\n\nint main() { return 0; }\n
Run Code Online (Sandbox Code Playgroud)\n\n

编译器抱怨:

\n\n
\n

错误:重新定义 \xe2\x80\x98class T\xe2\x80\x99 的默认参数

\n
\n\n

我的理解哪里不对?

\n

c++

6
推荐指数
1
解决办法
924
查看次数

标签 统计

c++ ×2

default-value ×1

templates ×1