gpt4 book ai didi

c++ - 为什么这段代码编译(C++11)没有类型不匹配错误?

转载 作者:IT老高 更新时间:2023-10-28 14:00:00 26 4
gpt4 key购买 nike

std::vector<char> p = {"abc", "def"};

"abc""def" 不是 char,为什么编译器不给我关于这种类型不匹配的错误?

最佳答案

你没有调用 vector的构造函数接受 initializer_list<char> .该构造函数不可行,因为正如您所说,您没有传递 char 的列表秒。

但是vector还有一个constructor它将迭代器带到一系列元素。

template< class InputIt >
vector( InputIt first, InputIt last,
const Allocator& alloc = Allocator() );

不幸的是,这个构造函数匹配,因为这两个参数都将隐式转换为 char const * .但是您的代码具有未定义的行为,因为传递给构造函数的开始和结束迭代器不是有效范围。

关于c++ - 为什么这段代码编译(C++11)没有类型不匹配错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48482153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com