嗨,我正在解决一些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