
[Lorenzo Caminiti]
I get this error on MSVC 2008 but the code compiles just fine on GCC: Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
That's not 2008, it's 2005 (and it's 2005 RTM). _MSC_VER == 1400, VC8, VS 2005 _MSC_VER == 1500, VC9, VS 2008 _MSC_VER == 1600, VC10, VS 2010 (Our C++ compiler predates *Visual* C++.) This compiles with VC10 and Boost 1.44.0: C:\Temp>type meow.cpp #include <boost/scope_exit.hpp> struct c { void f() { typedef void (*this_t)(int this_ ); #if defined(BOOST_MSVC) // for MSVC typedef boost::type_of::msvc_typeid_wrapper< sizeof(*boost::type_of::encode_start( #else // for GCC typedef __typeof__( boost::type_of::ensure_obj( #endif boost::scope_exit::aux::wrap( boost::scope_exit::aux::deref( this, (this_t)0 ) ) ) #if defined(BOOST_MSVC) // for MSVC )>::type #else // for GCC ) #endif this_w; } }; int main() { c cc; cc.f(); return 0; } C:\Temp>cl /EHsc /nologo /W4 /I . meow.cpp meow.cpp using native typeof C:\Temp>meow C:\Temp> Stephan T. Lavavej Visual C++ Libraries Developer