From: Christoph Heindl Date: 2009-01-17T18:25:21+09:00 Subject: ruby macro bind conflicts tr1 on msvc9.0 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 is included along with visual studio standard tr1 include defines: #ifdef bind #undef bind #endif #define bind(s, a, l) rb_w32_bind(s, a, l) has template methods such as template _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