Я пытаюсь создать список инициализаторов constexpr для некоторых строковых констант. Я думаю, что это должно быть возможно в C ++ 17, но я не могу заставить его скомпилировать в MSVC.
#include <string_view>
using namespace std::literals::string_view_literals;
const constexpr std::initializer_list<std::string_view> some_strings{
"asdf"sv
};
Это дает следующее сообщение об ошибке:
error C2131: expression did not evaluate to a constant
note: failure was caused by non-constant arguments or reference to a non-constant symbol
note: see usage of '$S1'
Я не могу понять, какая часть не будет constexpr:
- Оператор std :: string_view "" является constexpr
- Конструктор std :: initializer_list также является constexpr
Есть идеи? Это просто ошибка в визуальной студии? Что означает «$ S1» в сообщении об ошибке?
РЕДАКТИРОВАТЬ: Visual Studio 15.8.9