前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++核心准则​T.123:使用常量表达式函数在编译时求值

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

作者头像
面向对象思考
发布2020-09-28 16:39:43
6680
发布2020-09-28 16:39:43
举报

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 面向对象思考 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Reason(原因)
    • Enforcement(实施建议)
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档