Saturday, February 16, 2013
  • C++ 11 introduces constexpr.
  • Note:- Use "g++ -std=c++0x filename.cpp" to enable this feature.
  • constexpr allows computations to take place at compile time rather than at run time. This gives performance benefits.
  • constexpr allows the user to guarantee that a function or object constructor is a compile-time constant.
  • constexpr could be specified on a function with some restrictions.
    • Function must have a non void return type.
    • Function body cannot declare variables or define new types.
    • Function body can contain only declarations, null statements and a single return statement.
  • constexpr could be specified on a class constructor for working with user defined types.
    • A constexpr constructor's function body can contain only declarations and null statements, and cannot declare variables or define types, as with a constexpr function.

Demonstrate simple usage of constexpr

#include <iostream>
using namespace std;

constexpr int getSize(int x) {
   return 5 * x;

class MyClass {
      int x;
      constexpr MyClass(int val) : x(val) {}
      constexpr int getx() { return x; }

int main() {
   // Using constexpr variable
   constexpr int x = 10 + 10;

   // Using constexpr function
   int myArr[getSize(10)];

   // Using constexpr constructor
   constexpr MyClass c(100);
   cout << c.getx() << endl;

   return 0;   


Post a Comment

Contact Form


Email *

Message *

Back to Top