[bind] Error C4430 in bind.hpp

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

[bind] Error C4430 in bind.hpp

Robert Dailey
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
1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1201)
: error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1203)
: error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1204)
: error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1206)
: error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1207)
: error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1209)
: error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1210)
: error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int

They point to this code in bind.hpp:


BOOST_BIND_OPERATOR( ==, equal )
BOOST_BIND_OPERATOR( !=, not_equal )

BOOST_BIND_OPERATOR( <, less )
BOOST_BIND_OPERATOR( <=, less_equal )

BOOST_BIND_OPERATOR( >, greater )
BOOST_BIND_OPERATOR( >=, greater_equal )

BOOST_BIND_OPERATOR( &&, logical_and )
BOOST_BIND_OPERATOR( ||, logical_or )

Any idea why this is failing? If more info is needed please let me know.

---------
Robert Dailey

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [bind] Error C4430 in bind.hpp

Robert Dailey
I also forgot to mention I'm using Boost 1.48

---------
Robert Dailey


On Wed, Mar 14, 2012 at 5:07 PM, Robert Dailey <[hidden email]> 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
> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1201)
> : error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1203)
> : error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1204)
> : error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1206)
> : error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1207)
> : error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1209)
> : error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1210)
> : error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
>
> They point to this code in bind.hpp:
>
>
> BOOST_BIND_OPERATOR( ==, equal )
> BOOST_BIND_OPERATOR( !=, not_equal )
>
> BOOST_BIND_OPERATOR( <, less )
> BOOST_BIND_OPERATOR( <=, less_equal )
>
> BOOST_BIND_OPERATOR( >, greater )
> BOOST_BIND_OPERATOR( >=, greater_equal )
>
> BOOST_BIND_OPERATOR( &&, logical_and )
> BOOST_BIND_OPERATOR( ||, logical_or )
>
> Any idea why this is failing? If more info is needed please let me know.
>
> ---------
> Robert Dailey
>

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [bind] Error C4430 in bind.hpp

Robert Dailey
Anyone? Could this maybe be due to a conflict in another third party
library I'm using?
On Mar 14, 2012 5:07 PM, "Robert Dailey" <[hidden email]> wrote:

> I also forgot to mention I'm using Boost 1.48
>
> ---------
> Robert Dailey
>
>
> On Wed, Mar 14, 2012 at 5:07 PM, Robert Dailey <[hidden email]> 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
>> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1201)
>> : error C4430: missing type specifier - int assumed. Note: C++ does not
>> support default-int
>> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1203)
>> : error C4430: missing type specifier - int assumed. Note: C++ does not
>> support default-int
>> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1204)
>> : error C4430: missing type specifier - int assumed. Note: C++ does not
>> support default-int
>> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1206)
>> : error C4430: missing type specifier - int assumed. Note: C++ does not
>> support default-int
>> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1207)
>> : error C4430: missing type specifier - int assumed. Note: C++ does not
>> support default-int
>> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1209)
>> : error C4430: missing type specifier - int assumed. Note: C++ does not
>> support default-int
>> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1210)
>> : error C4430: missing type specifier - int assumed. Note: C++ does not
>> support default-int
>>
>> They point to this code in bind.hpp:
>>
>>
>> BOOST_BIND_OPERATOR( ==, equal )
>> BOOST_BIND_OPERATOR( !=, not_equal )
>>
>> BOOST_BIND_OPERATOR( <, less )
>> BOOST_BIND_OPERATOR( <=, less_equal )
>>
>> BOOST_BIND_OPERATOR( >, greater )
>> BOOST_BIND_OPERATOR( >=, greater_equal )
>>
>> BOOST_BIND_OPERATOR( &&, logical_and )
>> BOOST_BIND_OPERATOR( ||, logical_or )
>>
>> Any idea why this is failing? If more info is needed please let me know.
>>
>> ---------
>> Robert Dailey
>>
>
>

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [bind] Error C4430 in bind.hpp

prasad
It depend on how you are using it. Can you show code, that requires bind.hpp to be included ?
Probably, you are using one of class without its header declaration.
Reply | Threaded
Open this post in threaded view
|

Re: [bind] Error C4430 in bind.hpp

Lars Viklund
In reply to this post by Robert Dailey
Please don't top-post. Respond in-line or at the bottom.

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
> >> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1201)
> >> : 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 )
> >> BOOST_BIND_OPERATOR( !=, not_equal )

[snip]

> >> Any idea why this is failing? If more info is needed please let me know.

Try preprocessing your source and see what these macros expand to on
your configuration, preferably doing the same on a known good machine.

--
Lars Viklund | [hidden email]

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [bind] Error C4430 in bind.hpp

Robert Dailey
On Thu, Mar 15, 2012 at 9:25 AM, Lars Viklund <[hidden email]> wrote:

> Please don't top-post. Respond in-line or at the bottom.
>
> 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
> > >>
> 1>c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1201)
> > >> : 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 )
> > >> BOOST_BIND_OPERATOR( !=, not_equal )
>
> [snip]
>
> > >> Any idea why this is failing? If more info is needed please let me
> know.
>
> Try preprocessing your source and see what these macros expand to on
> your configuration, preferably doing the same on a known good machine.


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) ); }
struct not_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, not_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, not_equal, list_type> ( not_equal(),
list_type(f, a2) ); }

struct less { 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, less, 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, less, list_type> ( less(), list_type(f,
a2) ); }
struct less_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, less_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, less_equal, list_type> ( less_equal(),
list_type(f, a2) ); }

struct greater { 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, greater, 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, greater, list_type> ( greater(),
list_type(f, a2) ); }
struct greater_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, greater_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, greater_equal, list_type> (
greater_equal(), list_type(f, a2) ); }

struct logical_and { 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, logical_and, 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, logical_and, list_type> ( logical_and(),
list_type(f, a2) ); }
struct logical_or { 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, logical_or, 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, logical_or, list_type> ( logical_or(),
list_type(f, a2) ); }


It's a nightmare to look at so I hope you can find the problem. I never was
very good at debugging boost issues. I'm pretty sure it's one of the header
files being included before it, but I have no idea what the conflict is.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [bind] Error C4430 in bind.hpp

Darren Garvey-3
On 15 March 2012 11:59, Robert Dailey <[hidden email]> wrote:

> On Thu, Mar 15, 2012 at 9:25 AM, Lars Viklund <[hidden email]> 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

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [bind] Error C4430 in bind.hpp

Robert Dailey
On Thu, Mar 15, 2012 at 11:06 AM, Darren Garvey <[hidden email]>wrote:

> On 15 March 2012 11:59, Robert Dailey <[hidden email]> wrote:
>
> > On Thu, Mar 15, 2012 at 9:25 AM, Lars Viklund <[hidden email]> 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 :)

Thanks for the help!

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [bind] Error C4430 in bind.hpp

Darren Garvey-3
On 15 March 2012 12:22, Robert Dailey <[hidden email]> wrote:

> On Thu, Mar 15, 2012 at 11:06 AM, Darren Garvey <[hidden email]
> >wrote:
>
> > On 15 March 2012 11:59, Robert Dailey <[hidden email]> wrote:
> >
> > > On Thu, Mar 15, 2012 at 9:25 AM, Lars Viklund <[hidden email]> 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. :)

Cheers,

Darren

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [bind] Error C4430 in bind.hpp

Robert Dailey
On Thu, Mar 15, 2012 at 3:16 PM, Darren Garvey <[hidden email]>wrote:

> On 15 March 2012 12:22, Robert Dailey <[hidden email]> wrote:
>
> > On Thu, Mar 15, 2012 at 11:06 AM, Darren Garvey <[hidden email]
> > >wrote:
> >
> > > On 15 March 2012 11:59, Robert Dailey <[hidden email]> wrote:
> > >
> > > > On Thu, Mar 15, 2012 at 9:25 AM, Lars Viklund <[hidden email]>
> 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?

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