Boost logo

Boost :

Subject: Re: [boost] [mpl] Using apply with gcc error
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2011-02-03 18:02:08


AMDG

On 2/3/2011 2:42 PM, Edward Diener wrote:
> Compiling this code with gcc:
>
> #include <boost/config.hpp>
> #include <boost/mpl/apply.hpp>
>
> template
> <
> class MF,
> class T
> >
> struct myMF :
> boost::mpl::apply<MF,T>
> {
> BOOST_STATIC_CONSTANT(bool,value=type::value);
> };
>
> int main()
> {
> return 0;
> }
>
> Gives:
>
> "gcc.compile.c++
> ..\..\..\bin.v2\libs\tti\test\TestMFHasTypeMFC.test\gcc-mingw-4.5.2\debug\TestMFHasTypeMFC.o
>
> TestMFHasTypeMFC.cpp:18:5: error: 'type' has not been declared
>

gcc is correct. Members of a dependent base class are
not visible in the derived class. (This is necessary
to allow the template to be parsed before the template
arguments are known.).

Add
using typename boost::mpl::apply<MF,T>::type;

In Christ,
Steven Watanabe


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