我们可以在函数中定义一个本地类,但这个类不能是一个有点烦人和不一致的模板。 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/