c++ - C++17无匹配函数调用以减少错误
问题描述
此代码来自Apress的《 C++17 标准库快速参考》一书:
#include <numeric>
#include <vector>
using namespace std;
int main() {
vector vec {4,2,5,1,3,6};
int sum = reduce( begin(vec), end(vec));
}
当我在Windows 7g++-9.2
上使用选项-std=c++17
(或-std=gnu++2a
)编译它时,我得到:
error: no matching function for call to 'reduce(std::vector<int, std::allocator<int> >::iterator, std::vector<int, std::allocator<int> >::iterator)'
这段代码有什么问题?谢谢你。
解决方案
正如另一条评论已经指出的那样,我尝试使用x86-64 gcc (contracts)
我想是 gcc 编译器的实验版本的版本编译您的代码,并且编译成功。在这里试试。
此外,我在Reddit上遇到了一篇有趣的帖子,主题与我们在这里讨论的主题相同。
编辑
正如 OP 在下面的评论中发布的那样,gcc-10.0.0
成功地编译了问题中的代码。
推荐阅读
- angular - BreakpointObserver 没有触发
- django - Django对锚标签没有响应
- blockchain - Corda 数据库中的数据存储在哪里?
- c++ - C++ 2d 静态数组和内存分配
- android - 在片段之间快速切换时 Mapbox 崩溃
- typescript - 如何在打字稿中 navigator.geolocation.getCurrentPosition 的成功回调函数中传递额外的参数?
- android - 添加新记录后 Flutter FutureBuilder 不会重新加载
- javascript - 将数据从表传递到模态表单
- ocaml - ocamlc - 编译 ocaml-wasm - 错误:/usr/lib/ocaml/bigarray.cma 不是字节码目标文件
- ios - RxSwift : BehaviorRelay 代替变量使用