关于std::initializer_list的类模板实参推导问题咨询
关于std::initializer_list列表初始化的Clang版本兼容性疑问
下面这段代码:
#include <string_view> using namespace std::string_view_literals; #include <initializer_list> int main() { std::initializer_list svs{ "Meow"sv, "Woof"sv }; }
能被所有GCC版本(至少从8.2开始)正常编译,但Clang 18及更早版本会拒绝编译,Clang 19则可以顺利通过编译。
我认为这属于直接列表初始化,对应cppreference中列表初始化的第一种情况。
考虑到Clang的行为出现了变化,我怀疑这是一个已经被修复的Clang Bug(当前Clang已接受该代码,应该不属于未定义行为)。不过我在Clang的Issue库中没找到相关问题,想请大家帮忙确认或者否定我的这个判断。
内容的提问来源于stack exchange,提问作者Bulletmagnet
相关产品推荐
相关产品推荐

