
On Thu, Mar 15, 2012 at 3:16 PM, Darren Garvey <darren.garvey@gmail.com>wrote:
On 15 March 2012 12:22, Robert Dailey <rcdailey@gmail.com> wrote:
On Thu, Mar 15, 2012 at 11:06 AM, Darren Garvey <darren.garvey@gmail.com
wrote:
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?
Oh man, good find. We are using the IBM Lotus Notes API and it defines W to signify that we are on Windows. Kinda silly... I guess I'll #undef it for now. Really annoying though. Maybe in a future update to boost the template parameters could be given more unique names? Not that this is really boost's problem :)
Better still, the standard could say that single characters shall not be macro defines. Common sense does already!
Ah, the good old Notes API (or in fact anything Lotus Notes) - what a disaster. I once wrote a thin Boost.Python wrapper over most of the Notes C++ API; I laid it to rest on sourceforge ( http://sourceforge.net/projects/notespy/) if you'd prefer to have a less painful interface to use. :)
+1 to your Python wrapper, that seems extremely useful. However, I have bad news for you: They've deprecated the C++ Notes API and now only update the C API. What a way to take a step backwards, eh?