【发布时间】:2019-04-18 13:42:09
【问题描述】:
Nicolai Josuttis 在 CppCon 2018 上的“C++ 中初始化的噩梦”演讲曾一度包含以下代码:
std::vector< std::string > v07 = {{ "1", "2" }};
Nicolai said the following(我的转录本):
问题是,这里发生的是,我们将这两个参数解释为 迭代器。所以这些是迭代器,所以 this 是范围的开始,this 是范围的结束,它们应该引用相同范围的字符;因为字符隐式转换为字符串,这将编译。如果你幸运的话,你会得到一个核心转储。如果没有,那你就有大问题了。
他在那里失去了我。有人可以一步一步准确地解释这里发生了什么吗?
【问题讨论】:
标签: c++ initialization c++17