Boost logo

Boost Users :

From: Matt Brown (deadguysfrom_at_[hidden])
Date: 2008-03-12 21:35:44


I just tried to build this code in visual studio 2005, and got error:

error C3201: the template parameter list for class template
'boost::mpl::bind2<F,T1,T2>::apply' does not match the template
parameter list for template parameter 'boolfunc'

This code works fine with gcc, and boost mpl portability page
(http://www.boost.org/libs/mpl/doc/tutorial/portability.html) says my
version of visual studio should be able to compile this. However, it
appears to think the lambda< ... >::type::apply is not
a metafunction. Any help will be greatly appreciated.

-Matt Brown

#include <iostream>
#include <boost/mpl/lambda.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/mpl/placeholders.hpp>

template <template <typename> class boolfunc>
class test
{
public:
       static void print()
       {
               if(boolfunc<int>::type::value)
               {
                       std::cout << "int: true\n";
               }
       }
};

int main(void)
{
       test<
               boost::mpl::lambda<
                       boost::is_same<boost::mpl::_1, int>
>::type::apply
>::print();
};


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