decltype 中的表达式是被执行,还是只是被检查以进行验证? [复制]

2024-03-03

通过使用表达SFINAE https://stackoverflow.com/questions/12654067/what-is-expression-sfinae,你可以检测是否有一些operator https://stackoverflow.com/questions/5839357/detect-operator-support-with-decltype-sfinae or 手术 https://stackoverflow.com/questions/14003366/what-does-the-void-in-auto-fparams-decltype-void-do是否支持。

例如,

template <class T>
auto f(T& t, size_t n) -> decltype(t.reserve(n), void())
 { t.reserve(n); }

我的问题是t.reserve(n) inside decltype被处决还是不被处决?

如果是的话,这是否意味着t.reserve(n)被处决两次,一次在里面decltype函数体内的另一个呢?

如果不是,是否只是在编译时检查验证?但为什么它没有被执行,我认为逗号分隔表达式列表中的所有表达式都会被执行。


不,来自 [dcl.type.simple]:

的操作数为decltype说明符是一个未计算的操作数(第 5 条)。

这意味着,从 [expr] 开始:

在某些情况下,会出现未计算的操作数(5.2.8、5.3.3、5.3.7、7.1.6.2)。未评估的操作数不是 评价。未评估的操作数被视为充分表达.

所以在这个特定的背景下,目的decltype(t.reserve(n), void())是为了验证t.reserve(n)是一个有效的表达式。如果是,则该函数是一个可行的重载,其返回类型为 void,并且reserve()将被调用一次(在函数体内)。如果不是,那么我们就会出现替换失败,并且该函数不是可行的重载候选者。

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

decltype 中的表达式是被执行,还是只是被检查以进行验证? [复制] 的相关文章

  • 如何在流星运行时编译新模板?

    如何使用 Handlebars js 在流星中运行时编译新模板 var source
  • 未找到 DEADLINE 调度策略

    我想在 C 中实现 DEADLINE 调度策略 我知道该功能已实现Linux 3 14 10我正在使用 Ubuntu 14 04Linux 3 17 0 031700 lowlatency 201410060605 SMP PREEMPT这
  • 如何从经过身份验证的 SecurityToken 中获取声明

    我将令牌作为字符串传递到 SOAP 服务中 并验证了该令牌是否有效 我现在有一个 SecurityToken 在调试模式下我可以看到所有声明 特别是我想传递到另一个方法的 userId 声明 我似乎不知道如何获得这些索赔 现在 我解码了令牌
  • 从结构调用 C++ 成员函数指针

    我找到了有关调用 C 成员函数指针和调用结构中的指针的信息 但我需要调用结构内部存在的成员函数指针 但我无法获得正确的语法 我在类 MyClass 的方法中有以下代码片段 void MyClass run struct int MyClas
  • 如何在 Linux 上重新实现(或包装)系统调用函数?

    假设我想完全接管 open 系统调用 也许要包装实际的系统调用并执行一些日志记录 一种方法是使用 LD PRELOAD http scaryreasoner wordpress com 2007 11 17 using ld preload
  • 维护 VS Test Project 中单元测试方法之间的上下文

    我想按顺序运行以下单元测试 使用随机数字的名称 密码等创建新客户 检索刚刚创建的客户并断言其属性包含相同的随机数 对同一用户调用 ForgotPassword 函数 并使用相同的随机数作为用户名 清楚地看到 我需要生成一次随机数 并在 3
  • 用于 C++ 中图像分析的 OpenCV 二进制图像掩模

    我正在尝试分析一些图像 这些图像的外部周围有很多噪声 但内部有一个清晰的圆形中心 中心是我感兴趣的部分 但外部噪声正在影响我对图像的二进制阈值处理 为了忽略噪音 我尝试设置一个已知中心位置和半径的圆形蒙版 从而使该圆之外的所有像素都更改为黑
  • 如何在 C 中链接目标文件?失败并显示“架构 x86_64 的未定义符号”

    因此 我尝试在我的文件 file2 c 中使用另一个 C file1 c 文件中定义的函数 为了做到这一点 我包含了 file1 file1 h 的标头 但是 每当我尝试使用 gcc 编译文件时 我都会收到以下错误 Undefined sy
  • X 轴和 Z 轴上的 Quaternion.Slerp,无 Y 轴

    I am trying to rotate the Player about X Y and Z axis The Y axis should not move from last angle Example if I rotate 45
  • main.cpp 是必需的吗?

    我试图编译一个程序cmake 我最终删除了我的main cpp文件 我刚刚将其复合到另一个包含我的项目名称的文件中 即 我刚刚将主函数剪切并粘贴到该文件中 问题是我有一个main cpp未发现错误 不确定是否在C 一个名为main cpp是
  • fgets溢出后如何清除输入缓冲区?

    当输入字符串超出其预定义限制时 我遇到了 fgets 的小问题 以下面的例子为例 for index 0 index lt max index printf Enter the d string index 1 if fgets input
  • Clang 5.0 上的 vsprintf 和 vsnprintf [-Wformat-nonliteral] 警告

    我有这段代码 static void err doit int errnoflag int level const char fmt va list ap int errno save unsigned long n char buf MA
  • 具有多个父项的 Qt 树模型

    我想构建一棵树 其中一个元素可以引用另一个元素 我想要构建的树是 像这样的东西 A B C D E F P this is a pointer to C D first child of C E second child of C I fo
  • Windows Phone 的 JSON 反序列化

    我正在尝试反序列化以下 JSON 但我真的不知道如何使用 JSON net 来完成这项工作 我正在使用 C 和 JSON Net 库 我的 JSON 如下 found 3 bounds 43 54919 172 62148 43 54487
  • 为什么我可以在另一个函数中定义一个函数?

    请参阅下面的代码 我在另一个函数中定义了一个函数 void test1 void void test2 void printf test2 n printf test1 n int main void test1 return 0 这个用法
  • 如何防止 Lotus Notes 用户转发或复制通过 System.Net.Mail 发送的邮件?

    我想使用 SMTP 客户端 uiing microsft net 以 C 作为编程语言发送电子邮件 但是对于通过SMTP客户端发送的电子邮件 我们是否可以添加 禁止转发 或 禁止复制 等安全功能 我不希望电子邮件的收件人转发或复制电子邮件的
  • C# 多维数组解析

    我有一个多维数组 内容在调试器中看起来像这样 数组设置为 String s new String 6 4 A B Yes C A B Yes C A B No C A B Yes C A B Yes C A B Yes C A B No C
  • 为什么存在系统调用

    我一直在阅读有关系统调用及其在 Linux 中如何工作的内容 我还有更多的阅读要做 但我读过的一件事都没有回答 那就是 为什么我们需要系统调用 我知道系统调用是用户空间程序要求内核执行某些操作的请求 但我的问题基本上是 为什么用户空间程序本
  • 稀疏矩阵超定线性方程组c/c++库

    我需要一个库来解决 Ax b 系统 其中 A 是一个非对称稀疏矩阵 每行有 8 个条目 而且可能很大 我认为实现双共轭梯度的库应该没问题 但我找不到一个有效的库 我尝试过 iml 但 iml sparselib 包中缺少一些标头 有小费吗
  • 将同步 zip 操作转换为异步

    我们有一个现有的库 其中一些方法需要转换为异步方法 但是我不确定如何使用以下方法执行此操作 错误处理已被删除 该方法的目的是压缩文件并将其保存到磁盘 请注意 zip 类不公开任何异步方法 public static bool ZipAndS

随机推荐

  • (413) 请求实体太大 |上传预读大小

    我使用 NET 4 0 编写了一个 WCF 服务 该服务托管在我的 Windows 7 上x64带有 IIS 7 5 的终极系统 其中一个服务方法有一个 对象 作为参数 我正在尝试发送一个包含图片的字节 只要该图片的文件大小小于约 48KB
  • 使用 webpack 配置 CSS 模块时出错

    我正在尝试使用 webpack 配置 CSS 模块 但出现错误 我已经检查了 stackoverflow 上的其他答案 但到目前为止 没有一个解决方案对我有用 我已经按照文档的建议添加了加载程序 但它仍然显示错误 这是我的 webpack
  • 在 jQuery mobile 中创建侧边栏

    通常 当您使用 jQuery mobile 创建 data role page 元素时 它会占据整个查看区域 因此 我不明白如何创建侧边栏 我想模拟以下内容 但查看源代码没有多大帮助 http jquerymobile com demos
  • 嵌套字典到 MultiIndex pandas DataFrame(3 级)

    我想对 3 级嵌套字典执行相当于此操作 嵌套字典到多索引数据框 其中字典键是列标签 https stackoverflow com questions 24988131 nested dictionary to multiindex dat
  • 来自 CALayer 的 CGImage(或 UIImage)

    我创建了一个CALayer 我向图层添加了几个形状 但最终我只有一个 CALayer 并且将其添加到 CGImage 时遇到了很多麻烦 我找到了一些参考资料 CALayer renderInContext ctx 但我不知道如何实现它 以前
  • 我可以拥有在单个 js 文件中发出 Angular 元素的 Angular 库吗?

    我开始接触 Angular 6 位 并且对 Angular Elements 以及新的库项目非常感兴趣 我即将开展一个项目 可能需要这两个新功能 我需要创建可跨 Web 框架重用的自定义 UI 组件 但我也希望获得在 Angular 项目中
  • 忽略版本控制上的文件夹元文件

    Unity 创建和删除元文件folders在资源文件夹内 在使用版本控制时 这可能会产生令人烦恼的情况 您可以跳过并转到问题 有人创建了一个将被忽略的文件文件夹 但忘记忽略该文件夹的元文件 Unity 创建元文件 此人将元添加到版本控制中
  • Android 获取设备区域设置

    安装 Android 程序后 我检查设备区域设置 String deviceLocale Locale getDefault getLanguage 如果 deviceLocale 在我支持的语言 英语 法语 德语 内 我不会更改区域设置
  • 如何在 where 子句中使用别名?

    我试图在多列文本和备忘录中搜索我不想看到的某些短语和黑名单短语 假设如下表 stories id title author publisher content 前任 我想找到所有提到 在任何领域 苹果 但将 苹果酱 列入黑名单的故事 SEL
  • Apple Silicon 上的 ARCHFLAGS 值正确吗?

    在我以前的基于 Intel 的 Mac 上 我曾经包含 export ARCHFLAGS arch x86 64 在我的 shell 资源文件中 新的基于 ARM 的 Apple 芯片上的正确编译标志是什么 arm arm64 arm 64
  • WPF:OnCollectionChanged 未触发

    使用 VS 2102 NET 4 0 和 MVVM Light 我有以下代码 可将 XML 文件中的项目读取到 ObservableCollection 中 然后 如果集合发生更改 使用 IsDirty 标志 但 OnCodeCollect
  • 如何将 pandas 列的值除以其他列

    我有一个数据框 gt gt gt dt COL000 COL001 QT STK ID RPT Date STK000 20120331 2 6151 2 1467 1 20120630 4 0589 2 3442 2 20120930 4
  • 如何从 django 选择字段中的值检索键?

    示例代码如下 REFUND STATUS S SUCCESS F FAIL refund status models CharField max length 3 choices REFUND STATUS 我知道在模型中我可以使用 get
  • GitHub:是否可以搜索内部代码并按星号排序

    我不确定这是否是解决这个问题的正确论坛 在 GitHub 上看到不少与搜索相关的 Q A 故在此发帖 例如 在 Github 项目中搜索代码 https stackoverflow com q 3616221 781695 GitHub 高
  • 带有 Swift 和 iOS 8 Storyboard 的登录屏幕

    我在处理 iOS 应用程序的登录流程时遇到了很多麻烦 我想要实现的故事板的图像如下 我正在尝试实现一个可选的登录屏幕 仅当用户首次打开应用程序且尚未登录时才会显示该屏幕 目前 我将选项卡栏控制器设置为根视图控制器 然而 我不知道如何处理这些
  • 添加CSS边框改变HTML5网页中的定位

    当我在 HTML 5 文档中添加边框时 我遇到了页面元素移动的问题 我期望包含标题元素 灰色 出现在屏幕顶部 但它似乎占用了内部 div 红色 的边距 但是 如果我向标题添加边框 它就会出现在我期望的位置 并且红色内部 div 只会稍微移动
  • sap.ui.core.routing.Router.navTo() 和 sap.m.routing.Targets.display() 有什么区别?

    假设我们有一条路线和一个目标 routes pattern modify name modify target master modify targets modify viewName Modify viewId modify viewL
  • 在ansible模板中生成元组变量

    我正在尝试设置一个剧本来部署 influxdb 集群 一切正常 除了我们使用INfluxDB集群客户端 http influxdb python readthedocs org en latest api documentation htm
  • PySpark - 从 Numpy 矩阵创建 DataFrame

    我有一个 numpy 矩阵 arr np array 2 3 2 8 2 3 4 5 我需要创建一个 PySpark Dataframearr 我无法手动输入值 因为长度 值arr将动态变化 所以我需要转换arr进入数据框 我尝试了以下代码
  • decltype 中的表达式是被执行,还是只是被检查以进行验证? [复制]

    这个问题在这里已经有答案了 通过使用表达SFINAE https stackoverflow com questions 12654067 what is expression sfinae 你可以检测是否有一些operator https