7
4

3 回答 3

4

是的,从GCC 5开始,但在GCC 7之前,它位于std::experimental命名空间中并在标头中定义<experimental/algorithm>

来自 GCC 5 发行说明:

运行时库 (libstdc++)

  • 改进了对 Library Fundamentals TS 的实验性支持,包括:

    • 函数模板 std::experimental::sample;

在 GCC 5.1 上测试https://wandbox.org/permlink/HWnX3qSgKbZO2qoH

于 2018-09-11T12:40:24.390 回答
3

不,我们可以从“Library Fundamentals V1 TS Components: Sampling”下的文档中的表格中看到,最早支持的 libstdc++std::sample版本是 7.1 版

于 2018-09-10T22:37:24.343 回答
1

gcc 6 是否支持使用 std::sample?

不,您需要 GCC 7。来自GCC 7 发行说明

  • 对 C++17 的实验性支持,包括以下新功能:

    • ...

    • std::sample、std::default_searcher、std::boyer_moore_searcher 和 std::boyer_moore_horspool_searcher;

对于 GCC 7,您可能需要-std=c++1z或者-std=gnu++1z因为它是实验性的。

于 2018-09-10T23:05:10.843 回答