Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2002-02-25 11:52:03


I propose that

"The result of a compile-time function is obtained using function<A1, ...,

For convenience, some compile-time functions return compile-time values, as
well, obtained via function<A1, ..., An>::value."

IOW is_const would look like:

template<class T> struct is_const
  static const bool value = false;
  typedef ct_value<bool, false> type;

template<> struct is_const<T const>
  static const bool value = true;
  typedef ct_value<bool, true> type;

where ct_value is

template<class T, T v> struct ct_value
  static const T value = v;

"The metaprogramming library operates on types only. Compile-time values are
wrapped in ct_value<Type, Value>.

(Rationale: practice shows that attempting to cover compile-time values as
well results in excessive duplication. ct_value<> is chosen to avoid having
separate bool_t, int_t, uint_t, size_t_t and so on.)"

Boost list run by bdawes at, gregod at, cpdaniel at, john at