zoukankan      html  css  js  c++  java
  • C++11 constexpr函数

      constexpr函数是指能用于常量表达式的函数,定义constexpr的方式和其他函数的定义方式一样,但存在下面两个约束:

      1、函数的返回值必须为字面值常量;

      2、函数体中必须且只有一个return语句;

    constexpr int new_sz(){return 42;}

    constexpr函数时被隐式地指定为内联函数的

      constexpr函数体内也可以有其他的语句,只要运行时不执行任何操作即可,比如空语句,类型别名,using声明;我们允许constexpr函数的返回值并非一个常量:

    constexpr size_t scale(size_t cnt){ return new_sz()*cnt; }

    当scale的形参cnt为常量表达式时,其返回值也为常量表达式,如果cnt传入的是一个类型为size_t的变量a,那么其返回值就不是常量表达式。

      和其他函数不一样的是,内联函数和constexpr函数可以在程序中多次定义, 不过某个给定的内敛函数或者constexpor函数来说,其定义必须是一致的,这样我们尽量要将内联函数和

    constexpr函数通常定义在头文件中。

  • 相关阅读:
    java常见异常
    实现两个整数变量交换
    java抽象类与接口
    Java内部类用法
    单例模式
    easyUI下拉列表点击事件的使用
    Java中使用HttpRequest获取用户真实IP地址端口
    js-easyUI格式化时间
    1124
    ACM算法
  • 原文地址:https://www.cnblogs.com/chmm/p/7451836.html
Copyright © 2011-2022 走看看