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

3

你好,我正在解决一些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 };

问题是什么?


你使用哪个编译器?你使用哪个版本的C++?这是在gcc 9.2上的有效初始化 https://gcc.godbolt.org/z/EZUjwP - borievka
gcc 5.4.0 on Ubuntu 16.04 - ragnacode
1
编译器(gcc 5.4)出现了这个警告:[x86-64 gcc 5.4#1] 警告:只有使用 -std=c++11 或 -std=gnu++11 才能使用扩展初始化列表。 扩展初始值设定项是在C ++ 11中引入的,因此您需要使用该选项进行编译。 - borievka
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接