std :: initializer_list <std :: string_view> 초기화

Oct 30 2020

다음 프로그램

#include <initializer_list>
#include <string_view>

inline constexpr std::initializer_list<std::string_view> s = { "" };

int main() {}

현재 Clang (12.0.0)으로 컴파일되지만 현재 GCC (11.0.0 20201028)로는 컴파일되지 않습니다. GCC를 사용하면 오류가 발생합니다.

prog.cc:4:67: error: modification of '<temporary>' is not a constant expression
    4 | inline constexpr std::initializer_list<std::string_view> s = { "" };
      |                                                                    ^

에서 [dcl.init.list / 5] 와 사실 string_view (숯불 CONST *) 생성자가 constexpr , 나는 연타의 행동이 바로 여기에 있다고 가정합니다.

그 맞습니까?

답변

1 xskxzr Nov 08 2020 at 08:54

그래 정확 해. 그것은이다 GCC 버그 .