【发布时间】:2014-05-08 00:49:49
【问题描述】:
如果我写这个
std::vector<std::string> v{"one","two","three"};
关联的std::initializer_list 模板推断的类型是什么?
换句话说,当char * 字符串文字转换为std::string 时?
最好将其声明为
std::vector<std::string> v{std::string("one"),
std::string("two"),
std::string("three")};
为了避免与所涉及模板的类型推断机制相关的问题? 我会保持同样的优化吗?
【问题讨论】:
-
你想解决什么问题?
-
@LightnessRacesinOrbit 没什么特别的,我试图了解 C++ 类型系统在这种特殊情况下是如何工作的。
-
好的。我警告你,这是一条危险的道路;)
-
@LightnessRacesinOrbit 我希望你能详细说明
-
C++ 对这类事情的规则可能非常复杂。
标签: c++ templates c++11 type-inference initializer-list