仅保证 std::min/std::max 进行一次评估

2024-01-01

C++ 标准是否保证调用

c = std::min(f(x), g(x));

只计算函数 f 和 g 一次?


是的。由于 std::min 是一个函数,因此 f(x) 和 g(x) 将仅计算一次。并且返回值不会被复制。查看函数原型:

template<typename T>     
const T& min ( const T& a, const T& b );

它与预处理器真正定义的 min 宏有明显的区别:

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

仅保证 std::min/std::max 进行一次评估 的相关文章

随机推荐

  • 从笔尖实例化视图会引发错误

    我尝试按照此创建 IBDesignable UIView 子类 link http iphonedev tv blog 2014 12 15 create an ibdesignable uiview subclass with code
  • 如何在 Roboguice 中通过构造函数注入参数? [安卓]

    这个问题可能与这个问题完全相同使用 Guice 将参数传递给构造函数 https stackoverflow com questions 9237996 pass parameter to constructor with guice 不同
  • Xcode 无法编译为模拟器

    我刚刚通过 App Store 更新了 Xcode 4 5 这是我从 Apple 开发者帐户获得的先前版本 自更新以来 我无法将任何应用程序编译到模拟器中 我可以编译到设备上 例如我的iPhone 我收到的错误是 fatal error f
  • Flutter导航push()和pop(),填满堆栈?

    在 Flutter 中构建一个应用程序 我想使用导航抽屉并添加了一些 FlatButton 每一个FlatButton has an onPressed 我所做的方法Navigator push 移动到所需的页面 该页面工作得很好 我想知道
  • 在控制台上显示“更新文本”

    有没有办法在 python 中创建进度条或更新命令行百分比之类的东西 每次更新都比新行更可取 something that looks like this for n in range 10 print n 10 打印 r字符 回车 会将光
  • Java:仅从集合中选择提供类型的元素

    我有一个 B 类型和 C 类型元素的集合 它们都扩展了 A 我需要过滤该集合以仅获取 B 类型的元素 除了以下方法之外 还有什么办法可以做到这一点吗 for A a initCollection if a instanceof B newC
  • 从模型验证中排除字段

    假设我有一个追随者ViewModel public class PersonViewModel Required public String Email get set Required public String FirstName ge
  • 如何在Android中设置导航控制器?

    我正在使用以下活动布局fragment and a BottomNavigationView
  • 如何使用 JavaScript 转义包含换行符的 JSON 字符串?

    我必须形成一个 JSON 字符串 其中的值具有换行符 必须对其进行转义 然后使用 AJAX 调用进行发布 任何人都可以建议一种使用 JavaScript 转义字符串的方法吗 我没有使用 jQuery 获取您的 JSON 并 stringif
  • 如何从Python脚本代码可靠地检查刚刚创建的目录是否存在?

    当我在不存在的系统上运行以下代码时 AnewDir代码退出后 系统上会出现一个新目录 from subprocess import Popen PIPE from os path import isdir from time import
  • @[] 在 Objective C 中有什么用[重复]

    这个问题在这里已经有答案了 我见过 NSArray objectsToShare objects 当查看一些示例代码时 是什么意思 objects here NSArray objectsToShare objects 是相同的 NSArr
  • 如何在 Twitter 上搜索关键字

    我正在尝试构建一项服务 在持续监控的基础上为 Twitter 中的多个用户执行关键字搜索 似乎有 5 种不同的方法可以实现这一目标 但都有各自的缺点 我浏览了 Twitter 和 twitter4j 文档 找不到任何其他方法 使用 Twit
  • 如何通过具有多个字段的查询创建动态订单

    我正在尝试创建一个具有多个 order by 字段的存储过程 按字段和方向的顺序作为参数通过存储过程传递 CREATE PROCEDURE GetFilteredLogs FromDate datetime2 ToDate datetime
  • 将 NSURL ** 转换为 CFURLRef *

    如何使用 ARC 编译以下代码 int main NSURL url NSURL new NSURL strong urlPointer url CFURLRef cfPointer bridge CFURLRef urlPointer g
  • Chrome 中的 CSS 渲染在线与离线不同

    我在使用 Google Chrome 时遇到了最奇怪的问题 当我从文件本地预览时 我的 html css 布局在所有浏览器中看起来都很棒 但是当我上传它时 Chrome 并且只有 Chrome 破坏了它 所有其他浏览器都表现良好 甚至 Sa
  • 删除Python用户警告

    我刚刚安装完我的MySQLdbPython 2 6 的包 现在当我使用以下命令导入它时import MySQLdb 将会出现用户警告 usr lib python2 6 site packages setuptools 0 8 py2 6
  • JPA/Hibernate 嵌入式 id

    我想做这样的事情 ReportingFile 对象 可以是 LogRequest 或 LogReport 文件 两者具有相同的结构 一个报告对象 包含一个 logRequest 带有日期的 logReport 列表 我尝试设置一个 Embe
  • 为什么 null React 组件状态初始化会得到“never”类型?

    当将组件的状态初始化为null在组件构造函数之外 状态的类型为never在渲染函数中 但是 当在构造函数中初始化状态时 状态具有正确的类型 根据 StackOverflow 上关于初始化状态的两种方法 在 babeled JS 中 的大多数
  • 在散景中使用 TapTool 设置图形范围

    在下面的示例中 我有两个相互重叠的散点图 预期的行为是 单击上图中的一点时 下图中的点会放大到周围区域 单击下图中的某个点时 下图会放大到周围区域 我已经运行了第一个行为 但第二个行为似乎不起作用 x range重置以覆盖数据的整个范围 忽
  • 仅保证 std::min/std::max 进行一次评估

    C 标准是否保证调用 c std min f x g x 只计算函数 f 和 g 一次 是的 由于 std min 是一个函数 因此 f x 和 g x 将仅计算一次 并且返回值不会被复制 查看函数原型 template