标准::p空气<矢量、双精度的初始值设定项列表<int>>



嗨,我正在解决一些C++问题,但我不熟悉该语言。

我正在尝试使用以下语法初始化 std::p air,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 };

问题出在哪里?

您正在使用自 C++11 起可用的扩展初始值设定项列表 (std::initializer_list(。

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

$ g++ main.cpp -std=c++11

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

最新更新