Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-03-05 05:54:29


I was just getting ready to propose a new config macro called
BOOST_ARG_DEPENDENT_TYPENAME based on this test:

    struct id { typedef int type; };

    template <class T> struct foo;

    template <class T>
    void f(T)
    {
       typedef foo<typename T::type> y;
    }

    int main()
    {
        f(id());
        return 0;
    }

But it turns out that this test is very similar to the one for
BOOST_DEDUCED_TYPENAME, and in fact it finds the same compiler (VC6).
So I guess the question is, do we currently have the right name for
the test and macro? VC6 will support typename on template arguments
in some contexts:

    struct id { typedef int type; };

    template <class T>
    void f(T)
    {
       typedef typename T::type x;
    }

    int main()
    {
        f(id());
        return 0;
    }

But then, it also works if you leave the typename off altogether.

Not sure what to do about this one,
Dave

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk