T.123: Use constexpr functions to compute values at compile time

T.123:使用常量表达式函数在编译时求值

Reason(原因)

A function is the most obvious and conventional way of expressing the computation of a value. Often a constexpr function implies less compile-time overhead than alternatives.

函数是表达求值的最显然,最便利的方式。通常,常量表达式函数比其他选项需要的编译时代价更小。

Note(注意)

"Traits" techniques are mostly replaced by template aliases to compute types and constexpr functions to compute values.

“特征”技术用于计算类型时基本上已经模板别名所代替,用于求值时则可以用常量表达式函数代替。

Example(示例)

template<typename T>// requires Number<T>
constexpr T pow(T v, int n)   // power/exponential
{T res = 1;while (n--) res *= v;return res;
}constexpr auto f7 = pow(pi, 7);

Enforcement(实施建议)

  • Flag template metaprograms yielding a value. These should be replaced with constexpr functions.

  • 标记返回数值的模板元编程。它应该被常量表达式函数代替。

原文链接

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#t123-use-constexpr-functions-to-compute-values-at-compile-time

新书介绍

《实战Python设计模式》是作者最近出版的新书,拜托多多关注!

本书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。


觉得本文有帮助?请分享给更多人。

关注微信公众号【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!

C++核心准则​T.123:使用常量表达式函数在编译时求值相关推荐

  1. [C++11]常量表达式函数

    constexpr修饰函数. 普通函数/类成员函数. 1.函数必须要有返回值,并且return返回的表达式必须是常量表达式. 代码如下: #include <iostream> using ...

  2. (P3-P4)constexpr修饰常量表达式和常量表达式函数

    文章目录 1. const 2.constexpr 3.常量表达式函数 1. const 在 C++11 之前只有 const 关键字,从功能上来说这个关键字有双重语义:变量只读,修饰常量 eg: v ...

  3. 初识C++ - 常量表达式函数

    常量表达式函数(constexpr function)是指能用于常量表达式的函数.其定义的方法和其他函数差不多,但主要满足一下规则: 1. 函数返回类型是字面值类型 2. 函数参数是字面值类型 3. ...

  4. C++常量表达式函数

    目录 常量表达式的功能 constexpr关键字和用户定义型别 constexpr对象 constexpr函数 constexpr模版 整数字面值即为常量表达式(constant expression ...

  5. C++语言编程概念:常量、常量表达式和常量初始化

    常量 常量是固定值,在程序执行期间不会改变.这些固定的值,又叫做字面值.常量可以是任何的基本数据类型,可分为整型数字.浮点数字.字符.字符串和布尔值.常量就像是常规的变量,只不过常量的值在定义后不能进 ...

  6. 常量表达式概念与用处

    1)什么叫常量表达式?         在编译期间进行求值的表达式. 1.字面值常量是常量表达式: 如123,'a',3.14等         2.跟字面值常量相关的一些表达式: 如123+3.14 ...

  7. 常量表达式(constexpr)

    首先,常量表达式的概念:在编译期就可以计算出结果的表达式 那么为什么要用常量表达式呢,用常量表达式会有什么好处: 1.允许一些计算只在编译时进行一次,而不是每次程序运行时: 2.编译器可以进行尺度更大 ...

  8. c语言 常量表达式,C++11 constexpr:验证是否为常量表达式(长篇神文)

    constexpr 是 C++ 11 标准新引入的关键字,不过在讲解其具体用法和功能之前,读者需要先搞清楚 C++ 常量表达式的含义. 所谓常量表达式,指的就是由多个(≥1)常量组成的表达式.换句话说 ...

  9. C++11之常量表达式(const与constexpr的区别)

    系列文章 C++11之正则表达式(regex_match.regex_search.regex_replace) C++11之线程库(Thread.Mutex.atomic.lock_guard.同步 ...

最新文章

  1. 文本类控件 (TextView的介绍)
  2. crud springmvc
  3. android手机上的ancs,Android BLE开发之操作IOS ANCS
  4. 把二元查找树转变成排序的双向链表(树)
  5. java设计模式之设计原则④接口隔离原则
  6. 优秀的程序员VS糟糕的程序员
  7. R-CNN 物体检测第一弹
  8. srm开发(基于ssh)(4)
  9. 深度推荐模型(EDRMs):面向Web级应用的基于二进制码的Hash Embedding
  10. 回溯---含有相同元素求子集
  11. encodeURI和uncodeURIComponent的介绍
  12. 10.27大视野月赛翻车实况
  13. 第十三届蓝桥杯省赛模拟赛题解(2022年第四次模拟赛)C/C++
  14. msdtc备份oracle,域渗透-msdtc实现dll劫持后门
  15. 使用Git初始化已有的项目
  16. 解析双稳态肖特基二极管的设计
  17. C6中休假申请与人事软件的跨服务器数据库整合,已处理。
  18. 一个出生偏远山区挨个饿90后的触景生情
  19. 果然,ChatGPT 还是被拿去搞黄色了...
  20. Kafka:High level consumer vs. Low level consumer

热门文章

  1. 微信小程序开发必备 hellow word
  2. IDEA rebuild project idea如何重新编译项目
  3. 使用java编写周易卦象生成器
  4. 【免费学习半个月】强烈推荐你学习这个《机器学习与推荐系统实训强化课》...
  5. Seen and Unseen emotional style transfer for voice conversion with a new emotional speech dataset
  6. 卖股票缴税,卖房避税,马斯克的“阳谋”要结束了
  7. 智能小车红绿灯识别功能的实现(python,ubuntu)
  8. Word-1:使用poi-tl引擎导出word文档
  9. 金蝶ERP系统的实施对企业的重要性
  10. 移动IP研究之分享几个代理服务器