std :: pair <vector <int>,double>的初始化列表

时间:2019-11-23 18:10:32

标签: c++

嗨,我正在解决一些C ++问题,我对这种语言不熟悉。

我正在尝试使用以下语法初始化std :: pair,double>:

 std::pair<std::vector<int>, double> output = { {}, 0.0f };

在Ubuntu 16.04上的gcc 5.4.0生成此错误:

no known conversion for argument 1 from ‘std::pair<std::vector<int>, double>’ to ‘std::initializer_list<int>

如果使用以下语法,则会发生相同的错误:

std::pair<std::vector<int>, double> output{{}, 0.0f };

出了什么问题?

1 个答案:

答案 0 :(得分:1)

您正在使用扩展的初始化程序列表(std::initializer_list),该列表自C ++ 11起可用。

对于gcc 5.4.0编译器,您需要使用C ++ 11标志对其进行编译:

ignoreNULL

https://gcc.godbolt.org/z/SHzREE