
On 15 March 2012 11:59, Robert Dailey <rcdailey@gmail.com> wrote:
On Thu, Mar 15, 2012 at 9:25 AM, Lars Viklund <zao@acc.umu.se> wrote:
On Thu, Mar 15, 2012 at 08:25:54AM -0500, Robert Dailey wrote:
For some reason when I include <boost/bind.hpp> I get the following errors:
1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1200)
: error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
[snip]
They point to this code in bind.hpp:
BOOST_BIND_OPERATOR( ==, equal )
[snip]
Thanks for the help. I generated a preprocessed file for this translation unit (the one including bind.hpp) and I see the following generated code:
struct equal { template<class V, class > bool operator()(V const & v, const & w) const { return v == w; } }; template<class R, class F, class L, class A2> bind_t< bool, equal, list2< bind_t<R, F, L>, typename add_value<A2>::type > > operator == (bind_t<R, F, L> const & f, A2 a2) { typedef typename add_value<A2>::type B2; typedef list2< bind_t<R, F, L>, B2> list_type; return bind_t<bool, equal, list_type> ( equal(), list_type(f, a2) ); }
Seems like the upper-case 'W' character is not being expanded properly. I'm assuming you don't have anything crazy in your code base that defines 'W' to be nothing? Cheers, Darren