在统一初始化期间初始化vector <float>错误

Dam*_*ian 3 c++11

当我在Visual Studio 2015中编译它时出现错误:错误C2398:元素'1':从'double'转换为'float'需要缩小转换

vector<float> v {2.46, 2.58, 2.0, 2.25, 3.0 };
Run Code Online (Sandbox Code Playgroud)

但这很有效

vector<float> v{ (float)2.46, (float)2.58, (float)2.0, (float)2.25, (float)3.0 };
Run Code Online (Sandbox Code Playgroud)

这个代码是否有一个优雅的解决方案,所以我不必将所有输入都浮动?也许调整initializer_list?

bol*_*lov 5

无耻地窃取igor-tandetnik的评论:

vector<float> v {2.46f, 2.58f, 2.0f, 2.25f, 3.0f };
Run Code Online (Sandbox Code Playgroud)

然后补充它以使其成为答案:

文字0.42的类型为double.要有一个float类型的文字,你需要f后缀:0.42f.

关于整数文字和浮点文字,你可以阅读更多(嗯......不是那么多)