c++ - 本地类模板

标签 c++ templates c++11

我们可以在函数中定义一个本地类,但这个类不能是一个有点烦人和不一致的模板。 C++0x 标准有什么更新吗?

最佳答案

<罢工>是的。实际上,这个规则更改使 Lambda 表达式成为可能,因为 Lambda 表达式创建了一个本地未命名类型。

对不起,我看错了你的问题。我以为您在谈论使用本地类作为模板参数。这在 C++98 和 C++03 中是不允许的,但它可以在 C++0x 中使用。

至于你的实际问题,C++0x 不会改变这一切。

老实说,我认为没有理由允许“函数本地类模板”。对“函数本地类模板”的支持可能只有少数人关心。在函数之外编写类模板是可以接受的替代品。这显然不会给编译器供应商带来足够的压力,无论实现这样的功能多么复杂。编译器供应商可能更关心实现其他 C++0x 功能。

但我明白你的意思。这似乎是语言的不必要的不​​规则性。如果你非常关心这个特性,你可以写一份正式的提案,并在大约两年后将其发送给 C++ 标准化委员会,届时他们可能会接受“C++1y”的提案。

关于c++ - 本地类模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3746532/

相关文章:

c++ - 使用另一个类对象的 std::vector 类

C++ 在使用 .o 和使用 .a 文件链接之间存在差异 : different behavior, 为什么?

javascript - 或者使用 mustache.js 的等效运算符

c++ - 如何修复此类模板

c++ - 转换大约 150mb 字符串的快速方法

c++ - 在类中重载 < 运算符

c++ - 右值模板参数隐式用作左值,并且 std::forwarding 工作

c++ - 使用定义相互依赖

c++ - Variadic 可转换检查类中的参数

c++ - std::type_index 跨 DLL 是否安全