Почему возврат константы из функции не определяется как константа? [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему возврат константы из функции не определяется как константа? [дубликат]

Сообщение Anonymous »


У меня есть программа, которая зависит от результата std::is_same_v . Однако я обнаружил, что когда в это выражение передаются функции, результат оказывается неожиданным, что приводит к ошибкам.

Я думал, что функции, возвращающие const value_t, будут рассматриваться как те же, что и const value_t, но, похоже, это не так, поскольку std ::is_same_v — это то, что возвращает true.

Я пробовал вернуть эти значения с помощью std::as_const, static_cast, вернуть их из функции constexpr, но ни один из них не сработал должным образом.

Минимальный воспроизводимый пример:

#include #include встроенная константа int x = 1; /// Постоянная целочисленная переменная. inline const int y() {return x;} /// Константная целочисленная функция, возвращающая . интервал основной() { /// успешно передается как константа. std::cout
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»