![]() |
1
6
没有比“标准不允许”更好的理由了。 我相信C++ 0x将提升这个限制,并允许您自由地使用本地类作为模板参数。但现在,这是不允许的。 |
![]() |
2
6
见 GOTW #58 -不能使用局部定义的类作为模板类型的参数,例如不允许向量。 从C++标准(143.1/2):
虽然我并没有把它理解为std::sort这样的模板函数不能使用本地类作为参数,但显然gcc不这么认为。
本地类没有链接(没有全局名称),这似乎有助于过度消耗编译器编写器并损害实际程序员。实际允许在
|
![]() |
3
2
按照我阅读标准的方式,它通常禁止使用本地类型作为模板参数,这意味着类模板和函数模板都不能使用。 上面写着:当地人……不应用作模板类型参数的模板参数。 它给出的示例使用了一个类模板,但是我想没有理由假设这个限制不适用于模板函数。 不管怎样,我想知道这一限制的原因是什么。这似乎是武断的。 |
![]() |
4
1
我知道这个问题有点过时,但是一个更简单的解决方案是在G++中启用C++ 0x标准模式,因为它已经支持用本地定义的类型进行模板实例化。
|
![]() |
Abhijit Sarkar · 如何修复“闭包可能比当前函数更有效” 3 年前 |
![]() |
Houman · 如果未调用闭包,如何使XCTest失败? 7 年前 |
![]() |
Kapil_A · 如何将swift中使用的闭包写入目标c? 7 年前 |
![]() |
Xendar · Jenkins管道模拟Groovy 7 年前 |
![]() |
Ibrahim Mohammed · 函数不考虑闭包 7 年前 |