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 <xxbind>.


<trunk/include/ruby/win32.h> defines:
#ifdef bind
#undef bind
#endif
#define bind(s, a, l)           rb_w32_bind(s, a, l)

<xxbind> 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