...one of the most highly
regarded and expertly designed C++ library projects in the
world.

— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards

Front Page / Data Types / Concepts / Integral Constant |

An Integral Constant is a holder class for a compile-time value of an
integral type. Every Integral Constant is also a nullary Metafunction,
returning itself. An integral constant *object* is implicitly convertible to the
corresponding run-time value of the wrapped integral type.

In the following table and subsequent specifications, `n` is a model of Integral Constant.

Expression | Type | Complexity |
---|---|---|

n::tag |
integral_c_tag |
Constant time. |

n::value_type |
An integral type | Constant time. |

n::value |
An integral constant expression | Constant time. |

n::type |
Integral Constant | Constant time. |

next<n>::type |
Integral Constant | Constant time. |

prior<n>::type |
Integral Constant | Constant time. |

n::value_type const c = n() |
Constant time. |

Expression | Semantics |
---|---|

n::tag |
n's tag type; n::tag::value is n's
conversion rank. |

n::value_type |
A cv-unqualified type of n::value. |

n::value |
The value of the wrapped integral constant. |

n::type |
is_same<n::type,n>::value == true. |

next<n>::type |
An Integral Constant c of type n::value_type
such that c::value == n::value + 1. |

prior<n>::type |
An Integral Constant c of type n::value_type
such that c::value == n::value - 1. |

n::value_type const c = n() |
c == n::value. |