[英]Initialization of std::initializer_list<std::string_view>
下面的程序
#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(char const*)構造函數是constexpr的事實,我假設 Clang 的行為就在這里。
那是對的嗎?
是的,你是對的。 這是一個GCC 錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.