#cpp #cpp11 #runtime #constexpr
Вот, я создал constexpr функцию. Как точно определить, выполнится она во время компиляции или в runtime?
Ответы
Ответ 1
Присвойте ее значение переменной, объявленной как constexpr. Если все пройдет успешно - значит, выполнилось во время компиляции :)Ответ 2
Можно попробовать использовать её в контексте, предполагающем исключительно compile-time выполнение. Например, static_assert: constexpr void f(int a) { } /*const*/ int i = 42; static_assert( (f(i),true), ""); Без const у i будет ошибка: error: non-constant condition for static assertion
Комментариев нет:
Отправить комментарий