Hi,
It seems that the macro bind as defined in trunk/include/ruby/win32.h
conflicts with added tr1 support to msvc9.0 (which is essentially
SP1). The conflict arises when <trunk/include/ruby/win32.h> is
included along with visual studio standard tr1 include
<trunk/include/ruby/win32.h> defines:
#ifdef bind
#undef bind
#endif
#define bind(s, a, l) rb_w32_bind(s, a, l)
has template methods such as
template<class _Ret,
class _Fty
_C_CLASS_ARG0>
_Bind<_Ret,
_BINDN<_Callable_obj<_Fty> _C_ARG0_ARG1> >
bind(_Fty _Val _C_ARG0_A0) // <— here!
{ // bind to UDT and user-specified return type
typedef _BINDN<_Callable_obj<_Fty> _C_ARG0_ARG1> _MyBind;
return (_Bind<_Ret, _MyBind>(_MyBind(_Val _C_A0_A1)));
}
Renaming the macro fixed the problem for compiling the ruby wrappers
I’m working on.
Any solutions other than renaming are appreciated.
Best regards,
Christoph