【发布时间】:2011-07-04 20:00:50
【问题描述】:
我正在阅读现代 C++ 设计。关于 sizeof 运算符的描述如下所述。以下段落是从通用编程的角度解释的。
sizeof 的强大功能令人惊讶:您可以将 sizeof 应用于任何表达式,无论其复杂程度如何,并且 sizeof 无需在运行时实际评估该表达式即可返回其大小。这意味着 sizeof 知道重载、模板实例化、转换规则——所有可以参与 C++ 表达式的东西。事实上,sizeof 隐藏了一个推断表达式类型的完整工具。最终,sizeof 会丢弃表达式并仅返回其结果的大小。
我的问题是作者的意思是 sizeof 返回它的大小而没有在运行时实际评估表达式。在最后一行中还提到 sizeof 丢弃了表达式。请求帮助理解这些陈述,最好是通过示例来完成。
谢谢
【问题讨论】:
-
想想
i++或表达式中的函数/方法调用;sizeof显然不会在遵循类型以报告结果大小时执行这些操作。我从来不知道 C++sizeof如此强大 :) 谢谢! -
我想这就是为什么
decltype是第一个可用的 C++0x 之一,因为无论如何这些机制已经可用:)