Операторы времени компиляции - PullRequest
4 голосов
/ 06 ноября 2010

Может кто-нибудь перечислить все операторы времени компиляции, доступные в C ++?

Ответы [ 2 ]

8 голосов
/ 07 ноября 2010

В C ++ есть два оператора, результат которых всегда можно определить во время компиляции, независимо от операнда (ов), и это sizeof [1] и :: [2].

Конечно, существует множество конкретных применений других операторов, которые могут быть разрешены во время компиляции, например, перечисленные в стандарте для целочисленных константных выражений .

[1] C99,в отличие от C ++, имеет типы массивов переменной длины.sizeof, примененный к VLA, не может быть определен во время компиляции.Некоторые компиляторы C ++ предоставляют VLA как расширение.

[2], то есть во время компиляции можно определить, какой объект является результатом выражения.Если сущность является объектом, то значение объекта - это другое дело.

0 голосов
/ 06 ноября 2010

В стандарте такого термина нет.

Но вот список всех операторов: http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B (я уверен, что есть другие ...).Должно быть довольно легко классифицировать их так или иначе.

...