В C ++ 0x есть что-то вроде static_assert, которое выдает предупреждение вместо ошибки? - PullRequest
13 голосов
/ 24 мая 2011

Я хотел бы сделать это для использования, которое может быть неэффективным, но не обязательно неправильным.

Ответы [ 3 ]

6 голосов
/ 24 мая 2011

номер

Ошибка подтверждения указывает на проблему, препятствующую завершению программы (будь то выполнение [утверждения во время выполнения] или компиляция [статические утверждения]).

По правде говоря, реализации разрешено делать все, что угодно, пока они выдают диагностику (включая продолжение выполнения). Но на практике все основные наборы инструментов будут вести себя примерно одинаково: они будут ошибаться. Вы, конечно, не можете взломать их на что-то определенное пользователем.

3 голосов
/ 24 мая 2011

Атрибуты введены в C ++ 0x для этой цели. См. http://docwiki.embarcadero.com/RADStudio/en/C%2B%2B0x_attribute_deprecated для примера.

0 голосов
/ 24 мая 2011

Не стандартно, нет. Вы можете найти #warning во многих компиляторах, но в большинстве случаев это не так.

...