Почему возврат константы из функции не определяется как константа? [дубликат]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

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