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函数通常定义在头文件中。

  • 相关阅读:
    UVA 10608 Friends
    UVA 10806 Dijkstra, Dijkstra.
    HDU 3715 Go Deeper
    poj1315
    poj1383
    poj1650
    poj1265
    poj1523
    RedHat9.0虚拟机安装
    注册DirectShow filter时应该注意中文路径
  • 原文地址:https://www.cnblogs.com/chmm/p/7451836.html