> Вспомним псевдо-функцию sizeof(), известную еще со времен C. Эта конструкция выглядит как обычная функция, но на самом деле компилятор вычисляет количество байт, которое занимает в памяти аргумент функции.
OMG… sizeof — это унарный оператор и он совсем не похож на функцию!
ISO/IEC 9899:1999, 6.5.3.4
> The sizeof operator yields the size (in bytes) of its operand, which may be an
> expression or the parenthesized name of a type.
Запись без скобок — наименее значимое отличие. Аргументом sizeof может быть тип (а у функции — нет), sizeof не вычисляет операнды (а выхов функции вычисляет).
Пример с марсианскими локалями несколько неточный. Кто мешает поменять в памяти объект, пусть и описанный константно? И да, если использовать шаблоны (или макросы), то будет предвычислено максимально возможное количество выражений.
Статика в языке программирования: что кроме типов?