Boost logo

Boost Users :

From: Eduardo Bezerra (edubez_at_[hidden])
Date: 2005-08-04 12:39:01


I'm reading the C++ Template Metaprogramming book and I'm not
understanding the following code from page 65-66:

template <class T>
struct param_type
  : mpl::eval_if <
      typename boost::is_scalar<T>::type
    , mpl::indentity<T>
    , boost::add_reference<T const>
>
{};

template <class T>
struct param_type
  : mpl::eval_if <
      boost::is_scalar<T>
--> ^^^^^^^^^^^^^^^^^^^^^^^ <--
    , mpl::indentity<T>
    , boost::add_reference<T const>
>
{};

After reading again and again the explanation I still don't get why we
don't need to use typename ....::type anymore. The text explains that
all Boost's integral metafunctions suply a nested ::value, but how it is
used in this context ?

Any help would be greatly appreciated.

Best regards,
Eduardo


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net