求助,关于C++20 ranges的疑问
  • 板块学术版
  • 楼主xiyihan
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/1/11 21:32
  • 上次更新2023/11/5 04:54:50
查看原帖
求助,关于C++20 ranges的疑问
152651
xiyihan楼主2021/1/11 21:32

如下,我想用下面的代码完成对ord数组的去重工作:

ord = ord | ranges::sort | ranges::unique;

但在编译时,出现了大量的编译错误:

已启动生成…
1>------ 已启动生成: 项目: prog, 配置: Debug Win32 ------
1>P5490.cpp
1>G:\OneDrive\桌面\prog\prog\source\P5490.cpp(4,22): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
1>G:\OneDrive\桌面\prog\prog\source\P5490.cpp(24,27): error C2678: 二进制“|”: 没有找到接受“std::vector<ll,std::allocator<ll>>”类型的左操作数的运算符(或没有可接受的转换)
1>D:\Visual Studio 2019\VC\Tools\MSVC\14.28.29333\include\xfilesystem_abi.h(230,1): message : 可能是“__std_fs_copy_options operator |(__std_fs_copy_options,__std_fs_copy_options) noexcept”
1>D:\Visual Studio 2019\VC\Tools\MSVC\14.28.29333\include\xfilesystem_abi.h(205,1): message : 或    “__std_fs_file_flags operator |(__std_fs_file_flags,__std_fs_file_flags) noexcept”
1>D:\Visual Studio 2019\VC\Tools\MSVC\14.28.29333\include\xfilesystem_abi.h(197,1): message : 或    “__std_access_rights operator |(__std_access_rights,__std_access_rights) noexcept”
1>D:\Visual Studio 2019\VC\Tools\MSVC\14.28.29333\include\xfilesystem_abi.h(123,1): message : 或    “__std_fs_stats_flags operator |(__std_fs_stats_flags,__std_fs_stats_flags) noexcept”
1>D:\Visual Studio 2019\VC\Tools\MSVC\14.28.29333\include\xfilesystem_abi.h(80,1): message : 或    “__std_fs_file_attr operator |(__std_fs_file_attr,__std_fs_file_attr) noexcept”
1>D:\Visual Studio 2019\VC\Tools\MSVC\14.28.29333\include\xcharconv.h(36,1): message : 或    “std::chars_format std::operator |(std::chars_format,std::chars_format) noexcept”
1>D:\Visual Studio 2019\VC\Tools\MSVC\14.28.29333\include\regex(1162,1): message : 或    “std::_Node_flags std::operator |(std::_Node_flags,std::_Node_flags) noexcept”
1>D:\Visual Studio 2019\VC\Tools\MSVC\14.28.29333\include\future(79,1): message : 或    “std::launch std::operator |(std::launch,std::launch) noexcept”
1>D:\Visual Studio 2019\VC\Tools\MSVC\14.28.29333\include\cstddef(43,27): message : 或    “std::byte std::operator |(const std::byte,const std::byte) noexcept”
1>G:\OneDrive\桌面\prog\prog\source\P5490.cpp(24,27): message : 尝试匹配参数列表“(std::vector<ll,std::allocator<ll>>, const std::ranges::_Sort_fn)”时
1>已完成生成项目“prog.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

所以,有人能指出我的代码存在什么错误吗?如果有,我相当感谢(被迫用回C++03语法

2021/1/11 21:32
加载中...