使用透明std函数对象时还需要写空尖括号吗?

2024-05-13

通过类模板参数推导,我们可以编写:

std::less Fn;

然而,G++ 8.2 拒绝此代码:

#include <algorithm>
#include <vector>
#include <functional>

int main()
{
std::vector v= { 1, 3, 2, 7, 5, 4 };

std::sort(v.begin(),v.end(),std::greater());
}

发出以下错误:

error: cannot deduce template arguments for 'greater' from ()

Clang++ 7.0 和 MSVC 15.8.0 编译它时不会出现警告。哪个编译器是正确的?


海湾合作委员会是错误的。已经有一个错误报告 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81486.

[dcl.type.simple]/2 http://eel.is/c++draft/dcl.type.simple#2 says:

A type-specifier of the form typenameopt nested-name-specifieropt template-name is a placeholder for a deduced class type ([dcl.type.class.deduct]).

And [dcl.type.class.deduct]/2 http://eel.is/c++draft/dcl.type.class.deduct#2 says:

推导类类型的占位符也可以用在类型说明符序列 in the 新类型 ID or type-id of a 新表达, as the 简单类型说明符在显式类型转换(函数符号)中([expr.type.conv]),或作为类型说明符 in the 参数声明 of a 模板参数。推导类类型的占位符不应出​​现在任何其他上下文中。

这种用途是允许的。


[温度参数]/4 http://eel.is/c++draft/temp.arg#4描述了语法错误 that a 模板 ID是必需的,但是没有<>。然而这里std::greater没有解决为模板 ID因此该款不适用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用透明std函数对象时还需要写空尖括号吗? 的相关文章

  • 哪些 iomanip 操纵器具有“粘性”?

    我最近在创建一个stringstream由于我错误地假设std setw 会影响每次插入的字符串流 直到我明确更改它 然而 插入后它总是被取消设置 With timestruct with value of Oct 7 9 04 AM st
  • .Net Core 中 String 默认不可序列化吗?

    我正在查看其他的 Fortify 静态分析安全测试 SAST 扫描报告 以识别和抑制误报 应用程序框架是C NET Core SAST 报告部分内容如下 Method1 在第 111 行将不可序列化的对象存储为 HttpSessionSta
  • System.MissingMethodException:找不到方法?

    以前工作的 ASP NET WebForms 应用程序现在抛出此错误 System MissingMethodException 找不到方法 The DoThis方法位于同一个类上 它应该可以工作 我有一个这样的通用处理程序 public
  • 如何使用 saxon 将文档类型参数传递给 xslt?

    对于发送原子数据类型将使用类似 transformer SetParameter new QName customXml new XdmAtomicValue true 如何将 XML Node 作为参数从 C 传递给 XSLT 你能帮我么
  • Ruby 解释器嵌入到 C 代码中

    我只是尝试书中的一个简单例子 我有一个 sum rb 文件 class Summer def sum max raise Invalid maximum max if max lt 0 max max max 2 end end 还有一个
  • C++ 中的字符串到 LPCWSTR

    我正在尝试从字符串转换为 LPCWSTR 我使用多位 1 例如 LPCWSTR ToLPCWSTR string text LPCWSTR sw LPCWSTR text c str return sw 2 返回中文字符 LPCWSTR T
  • 将 Visual Studio 2012 C++ 单元测试项目链接到 exe 会导致访问冲突

    我从现有的整体 exe 本机 Visual Studio 2012 项目开始 我想添加一个本机单元测试项目 根据http msdn microsoft com en us library hh419385 aspx objectRef ht
  • 实体框架 5 不清除导航属性

    我在 Entity Framework 5 中遇到了这个奇怪的问题 我在其中一个实体中有一个导航属性 我想将其设置为null 但由于某种原因 该属性只有在我第二次调用该属性时才会被清除 using var db new Entities v
  • 如何在 asp .net mvc 2 中对不直接属于我的模型的对象使用 DisplayFor()?

    我确信我在这里遗漏了一些非常简单的东西 我创建了一个自定义日期时间显示模板 使用以下方法时效果很好 但是 我遇到了这样的情况 在部分控件内 我在 for 循环中迭代模型中的对象 我想要一个 DateTime 属性来使用显示模板 但我不知道如
  • 带缓存的简约 PHP 模板引擎,但不带 Smarty?

    有大量的问题 https stackoverflow com search q php template engine cache寻找 正确的 PHP 模板引擎 但它们都不专注于缓存 有谁知道一个轻量级 高质量 基于 PHP 5 的模板引擎
  • C#中如何将委托转换为对象?

    我正在使用反射类来调用其他 dll 上的一些方法 方法的参数之一是委托类型 我想通过使用反射来调用这个方法 所以我需要将函数参数作为对象数组传递 但我找不到任何关于 如何将委托转换为对象 提前致谢 委托是一个对象 只需像平常一样创建预期的委
  • 在 C# 4.0 中,是否可以从泛型类型参数派生类?

    我一直在尝试这个 但我似乎无法弄清楚 我想做这个 public abstract class SingletonType
  • 如何定义 Swagger UI 参数的默认值?

    我已将 Swagger Swashbuckle 集成到 NET Core 2 2 API 项目中 一切都很好 我的要求纯粹是为了方便 考虑以下 API 方法 public Model SomeEstimate SomeRequest req
  • Facebook Graph API“/userid/feed”返回空白

    我正在使用 Facebook C SDK 但似乎无法使用 Graph API 获取反馈数据 我已从用户那里获得了以下扩展权限 范围 离线访问 publish stream publish checkins create event read
  • 当“多次安装 MSBuild”时,Dotnet 项目转换尝试转换失败

    try convert w Test csproj target framework netstandard2 0 结果是 Multiple installs of MSBuild detected please select one In
  • g++4.9 不支持 std::align

    在学习对齐问题等时 我意识到我的 g 4 9 macports OS X 实现不支持std align 如果我尝试编译 使用 std c 11 此示例代码来自http www cplusplus com reference memory a
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d
  • 第一个随机数始终小于其余随机数

    我碰巧注意到 在 C 中 使用 std rand 方法调用的第一个随机数大多数时候都明显小于第二个随机数 关于 Qt 实现 第一个几乎总是小几个数量级 qsrand QTime currentTime msec qDebug lt lt q
  • C中的pipe()和fork()

    我需要创建两个子进程 一个子进程需要运行命令 ls al 并将其输出重定向到下一个子进程的输入 而下一个子进程又将对其输入数据运行命令 sort r n k 5 最后 父进程需要读取该数据 已排序的数据 并将其显示在终端中 终端中的最终结果
  • 任何浮点密集型代码是否会在任何基于 x86 的架构中产生位精确的结果?

    我想知道使用浮点运算的 C 或 C 代码是否会在任何基于 x86 的体系结构中产生位精确的结果 无论代码的复杂性如何 据我所知 自 Intel 8087 以来的任何 x86 架构都使用准备处理 IEEE 754 浮点数的 FPU 单元 并且

随机推荐

  • 在 WSDL 中包含 XSD

    我正在编写一个 wsdl 文件来在未来 SoapUI 中部署模拟服务 但我在包含我的 xsd 文件时遇到问题 XSD File
  • 将位图旋转 90 度

    我有一个1 个 64 位整数 我需要在 8 x 8 区域中旋转 90 度 最好使用直接位操作 我想不出任何方便的算法 例如 这个 0xD000000000000000 110100000000000000000000000000000000
  • 抑制 Rspec 3 的回溯

    我正在使用 rspec 3 2 0 和 capybara 2 4 4 并在我的 spec helper rb 文件中如下所示 config full backtrace false 对于大多数错误 我都会得到回溯 例如 Failure Er
  • 查找所有子字符串的出现和位置

    我正在编写一个程序来解析一些保存为文本文件的数据 我想做的是找到大海捞针中每根针的位置 我已经可以读取文件并确定出现的次数 但我也希望找到索引 string str sub str is string to search sub is th
  • SQL 查询在多用户环境中返回错误值

    一段时间以来 我们在我们的一个客户站点上发现了奇怪的数据完整性问题 经过大量调查后 我们现在已将其隔离为数据库调用 如果两个用户同时调用同一个存储过程 有时一个用户会得到另一个用户的结果 我们设置了一个测试来验证这一点 并且我们有一个循环
  • 将声音图形化地表示为波

    我创建了一个记录和播放声音的应用程序 我正在寻找一种显示简单波形的方法 记录声音的表示 不需要动画 只需一个简单的图表 如果可以选择波的子集也很好 当然更好 也播放该部分 总而言之 我正在寻找什么 一种以图形方式将录制的声音表示为波的方法
  • 无法更改 MS Access 2007 上的数据类型

    我有一个巨大的数据库 800MB 其中包含一个名为 上次修改日期 的字段 目前该字段作为文本数据类型输入 但需要将其更改为日期 时间字段以执行一些查询 我有另一个完全相同的数据库 但其中只有 35MB 的数据 当我更改数据类型时 它工作正常
  • Google App Engine 数据存储写入:如何远程启用/禁用只读模式?

    在阅读备份时GAE 的数据存储 https developers google com appengine docs adminconsole datastoreadmin where 我们强烈建议您在备份或恢复期间将应用程序设置为只读模式
  • MySQL 过去 12 个月的月度销售情况,包括没有销售的月份

    SELECT DATE FORMAT date b AS month SUM total price as total FROM cart WHERE date lt NOW and date gt Date add Now interva
  • 使用 SYS_CONNECT_BY_PATH 的 Oracle 累积计数

    当我尝试对实际数据执行以下查询时 它返回了更多记录数 请帮助解决这个问题 下面是表 DM TEMP SUMMING DVC BY FW 中的实际数据 device count dmc id firmware version cg id im
  • 在 Eclipse 中的调试会话期间记录所有跟踪信息

    我想记录调试会话的每个步骤的所有调试信息 以便稍后处理所有这些数据 例如调用的方法的名称 参数值 所有变量值等 有没有任何选项可以实现此目的 我应该在哪里更改代码才能实现此目的 一件重要的事情 它不是一个 java 程序 这是一个使用 ac
  • 在并行调用中,限制每秒执行次数

    使用 TPL Parallel ForEach 有一种开箱即用的方法来限制每单位时间调用方法的次数 即每秒不超过 50 次调用 这与限制线程数不同 也许有一些简单的技巧可以使这项工作正常进行 一种解决方案是制作以下线程安全版本https s
  • OOP 中的静态和动态变量/方法是什么?

    我试图更好地理解 OOP 中的基本概念 面向对象编程中的静态和动态变量和方法是什么 例如 使用 this 与使用双冒号 之间有什么区别 this this gt a method 优点 缺点 这个 不是自我记录的 如下所示 this gt
  • 在 iOS 上不显示数字键盘

    根据苹果的文档 http developer apple com library safari documentation AppleApplications Reference SafariHTMLRef Articles InputTy
  • boost::algorithm::join 的一个很好的例子

    我最近想用提升 算法 加入 http www boost org doc libs 1 41 0 doc html string algo reference html header boost algorithm string join
  • 获得 IAP 产品响应后出现 Objective-C 错误

    此代码来自 Phonegap 代码 IAP 插件 错误发生在 发送的js 之后的代码行上 除了最后一个 nil 之外 发送到该函数的所有元素均非零 我什至将它们注销以确保它们已发送 该代码直接来自插件 https github com us
  • 获取 NullPointerException:尝试从字段“int android.view.View.mViewFlags”读取 - Android 动画

    我已经实现了一个动画 其中我在回收器视图中有图像视图 单击该项目时我想在回收器视图之外的图像视图上做一些动画 这样 我创建了一个新的图像视图 将其添加到主容器中 做了动画 最后我将它从主容器中取出 以下是回收器视图的点击项的代码 Code
  • 如何通过批处理文件检查服务是否正在运行并启动它,如果它没有运行?

    我想编写一个执行以下操作的批处理文件 Check if a service is running 如果正在运行 请退出批处理 如果没有运行 启动该服务 到目前为止 我在谷歌上搜索的代码示例被证明不起作用 所以我决定不发布它们 启动服务是通过
  • 尽管已被销毁,但多次打开子活动仍会导致 InstanceCountViolation

    我正在开发一个具有较低级别活动的项目 称为RecordView显示记录详细信息 例如图像 拍摄日期和时间以及纬度 经度信息 我不是尝试操纵相机进行地理标记并访问 exif 数据 而是尝试实现一个位置侦听器来获取首次拍摄图像的位置 按下按钮时
  • 使用透明std函数对象时还需要写空尖括号吗?

    通过类模板参数推导 我们可以编写 std less Fn 然而 G 8 2 拒绝此代码 include