> Yep, to be concrete, 'T::value_type'. Please see the following posts for
an
> explanation of the shortcoming, as well as for a technique to work around
> it:
>
> http://lists.boost.org/MailArchives/boost/msg39915.php (the relevant part
> starts from "Well, having said that..." paragraph)
> http://lists.boost.org/MailArchives/boost/msg39930.php (further
explanation)

Ah, thanks. I guess those MailArchives are better than the ActiveState ones.


>     template< class T >
>     struct meta_fun_1
>         : mpl::if_<
>               mpl::is_placeholder<T>
>             , mpl::identity<T>
>             , meta_fun_1_impl<T>
>             >::type
>     {
>         BOOST_MPL_AUX_LAMBDA_SUPPORT( 1, meta_fun_1, (T) )
>     };

This works excellent. As a result, my code now compiles on Intel, MSVC and
GCC.

"... makes small dance ..."

Seriously though, I had some funny problems with MSVC. For example, I got
the following error on some lines:

    syntax error : ''

That's right, there is nothing in between the quotes. Turns out the
following doesn't work on MSVC, in some cases:

    foo( some_template< N >::type() );

I had to replace those with:

    typedef some_template< N >::type() bar;
    foo( bar() );

I had some other interesting things as well. I will add them all to the MPL
wiki, as well as the GCC problems. I will also add an item on the lambda
situation and the work-arounds.
I'm a bit busy this week, but I hope to do it before wednesday.

Thanks for all the support.

Jaap Suter






_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to