![]() |
1
5
对于我的In-Dev Studio,以下操作失败:
输出:
所以我想它不会像预期的那样工作!!!! 如果删除预声明并将默认参数放入模板函数中,那么它将按预期工作。
这按预期工作。
好啊。不是从我对标准的理解来看,这应该如预期的那样工作:
使用N2521
段落的粗体部分(在我看来)表明,由于默认参数而创建的每个专门化在使用时都将隐式实例化到翻译单元中。 第11段:
指示即使默认参数是模板参数,它们也将被正确实例化。 希望我能正确地解释。-) |
![]() |
2
2
代码优化了吗?也许这就是为什么调试器向您显示错误的值。 我尝试了这个更简单的代码(在G++4.3.3中),它按预期工作。
|
![]() |
3
1
我不知道这是否有效,但是尝试使用静态的强制转换而不是C样式的强制转换作为默认值。 *编辑: 显然,问题在于编译器。 |
![]() |
TCD · 标准库非类型模板类是否显式实例化? 2 年前 |
![]() |
sovesti · 参数较少的模板函数中的演绎 2 年前 |
![]() |
KiraHoneybee · 具有构造函数参数的模板化类 2 年前 |
![]() |
Seymore Glass · 模板不工作的默认参数 2 年前 |
![]() |
Alexander Daum · 模板参数中对模板类型的引用 7 年前 |
![]() |
ledonter · 为什么注入的类名有时不被视为类模板中的模板名? 7 年前 |