Suppose it does something a little more complicated.

```
constexpr int MeaningOfLife ( int a, int b ) { return a * b; }
const int meaningOfLife = MeaningOfLife( 6, 7 );
```

Now you have something that can be evaluated down to a constant while maintaining good readability and allowing slightly more complex processing than just setting a constant to a number.

It basically provides a good aid to maintainability as it becomes more obvious what you are doing. Take `max( a, b )`

for example:

```
template< typename Type > constexpr Type max( Type a, Type b ) { return a < b ? b : a; }
```

Its a pretty simple choice there but it does mean that if you call `max`

with constant values it is explicitly calculated at compile time and not at runtime.

Another good example would be a `DegreesToRadians`

function. Everyone finds degrees easier to read than radians. While you may know that 180 degrees is 3.14159265 (Pi) in radians it is much clearer written as follows:

```
const float oneeighty = DegreesToRadians( 180.0f );
```

Lots of good info here: