Re[3]: constexpr это рекомендация?
От: Voivoid Россия  
Дата: 11.04.24 20:26
Оценка:
Здравствуйте, 00011011, Вы писали:

0>Я смотрю как сделана аналогичная фича в языке Zig, там все просто и гениально. И на фоне этого то как сделано в С++ становится совсем непонятным, почему так и чем руководствовались авторы этого constexpr?


constexpr выступает в роли контракта, который дает клиентам функции гарантии того, что функция может быть вычислена в compile time.

Допустим constexpr'а бы не было. Скажем ты используешь функцию факториала из некоторой библиотеки в compile time контексте. У функции простая реализация, поэтому все работает, все ок. Потом выходит новая версия библиотеки в которой реализация факториала изменилась ( ну не знаю, ассемблерные вставки скажем добавились ) и теперь в compile-time она вычислена быть не может. Твой код сломается при попытке перейти на новую версию. Не уверен, что ты хотел бы подобного развития событий. А вот наличие constexpr как раз исключает возможность возникновения этой ситуации.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.