Почему возврат константы из функции не определяется как константа? [дубликат] ⇐ C++
Почему возврат константы из функции не определяется как константа? [дубликат]
У меня есть программа, которая зависит от результата 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
У меня есть программа, которая зависит от результата 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
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение