
Hi, IMO the Integral Constant Concept is over specified in the mpl docs. What is the rationale behind the next<..> and prior <..> requirements? These seem to have little to do with an Integral Constant. Maybe they should rather be another Concept , such as Iterable? Where N is a model of Iterable: next<N>::type prior<N>::type Currently for example, mpl::bool_ is stated to be a model of Integral Constant, but it fails to meet the curently stated requirments, nor can it ever AFAICS. Further the requirements currently include a member ::value_type. According to the TMP book, this is a classic example of a traits blob. (section 2.2). Surely access should be specified using value_type<C>::type? IOW maybe a ValueType Concept. Finally the runtime evaluation requirement could be removed and a refinement of ValueType such as RunTime Evaluable be stated in terms such as: Where T is a type modelling Runtime Evaluable value_type<T>::type = t(); For a type N The current Integral Constant spec would then, in those places where these requirements are required: N is a model of Iterable, Integral Constant and Runtime Evaluable. This would allow me to meet the new Integral Constant requirements without unneccesary baggage. Further a bool_ could be correctly specified in terms of the above Concepts regards Andy Little