конструктор с условным включением

Вот как я могу условно включить конструктор class:

struct Foo
{

    template<class T>
    Foo( T* ptr, boost::enable_if<is_arithmetic<T> >::type* = NULL )
    {}

};

Я хотел бы знать, почему мне нужно делать включение через фиктивный параметр. Почему я не могу просто написать:

struct Foo
{
    template<class T>
    Foo( boost::enable_if<is_arithmetic<T>, T>::type* = NULL )
    {}
};
7
задан MK. 20 March 2011 в 00:01
поделиться