Это допустимый код с четко определенным поведением?
Я не могу скомпилировать его под MSVC 19.41.34123.0, что немного странно, поскольку векторы constexpr должны поддерживаться в этой версии MSVC в соответствии с к предпочтениям. Однако он отлично компилируется с использованием GCC 13.2.0. Но можно ли это сделать? И если все в порядке, будет ли это предпочтительнее обычного static const std::vector пустой или это вообще имеет значение?
const std::vector& MyClass::getThing(int key) const
{
auto it = m_map.find(key);
if (it != m_map.end())
{
return it->second;
}
static constexpr std::vector empty;
return empty;
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... f-function
Возврат статического вектора constexpr из функции const ref ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение