为什么C ++ 0x中有sizeof ...运算符?

时间:2010-05-05 06:22:56

标签: c++ language-design c++11

我看到@GMan为可变参数模板实现了a version of sizeof...,据我所知,它等同于内置的sizeof...。这不符合第二个设计原则:prefer libraries to language extensions

2 个答案:

答案 0 :(得分:7)

来自Variadic Templates (Revision 3) (N2080=06-0150),第6页:

  

虽然不是绝对必要的(我们可以在没有此功能的情况下实现count),但检查参数包的长度是一个值得使用简单语法的常见操作。此外,当可变参数模板与概念组合时,此操作可能成为类型检查原因所必需的;见3.3节。

(第3.3节讨论现在无关紧要的概念。)

答案 1 :(得分:4)

我认为

sizeof...只是糖。

sizeof确实是...语言的核心,虽然可能存在countof函数,但我们已经保留sizeof...,所以我们也许这样可以方便地计算。

相反,如果没有保留sizeof...,那么添加这样的东西的想法可能会失败,因为新的关键词往往不受欢迎。 (越少越好。)