Страницы

Поиск по вопросам

пятница, 13 декабря 2019 г.

Время выполнения функций

#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

Комментариев нет:

Отправить комментарий