【发布时间】:2021-10-08 13:16:11
【问题描述】:
#include <cstdint>
#include <ranges>
int main()
{
auto const il = {1, 2, 3, 4, 5, 6};
auto const n1 = std::int32_t{3};
auto const n2 = std::uint32_t{3};
auto const n3 = std::int64_t{3};
auto const n4 = std::uint64_t{3};
il | std::views::take(n1); // ok
il | std::views::take(n2); // ok
il | std::views::take(n3); // ok
il | std::views::take(n4); // error
}
为什么无法编译 std::views::take(std::uint64_t{})?
【问题讨论】:
-
仅供参考 - 工作在 11.2 - 现场 - godbolt.org/z/hnKPn4soz
-
看来是gcc 11.1的bug。
标签: c++ stl standards c++20 std-ranges