- 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.
Example: Demonstrate simple usage of constexpr
#include <iostream>
using namespace std;
constexpr int getSize(int x) {
return 5 * x;
}
class MyClass {
private:
int x;
public:
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;
}
0 comments:
Post a Comment