sdk won't compile with vs2010
2009-12-11 19:44:15
The lastest sdk available (2008-11-29) won't compile with CL 16.0, the MS compiler that comes with visual studio 2010. Bare compiler output:------ Build started: Project: pfc, Configuration: Debug Win32 ------ stdafx.cpp e:\projects\sdk-2008-11-29_\pfc\primitives.h(89): error C2332: 'class' : missing tag name e:\projects\sdk-2008-11-29_\pfc\primitives.h(89): error C3306: 'pfc::<unnamed-tag>': unnamed class template is not allowed e:\projects\sdk-2008-11-29_\pfc\primitives.h(89): error C2143: syntax error : missing ';' before 'static_assert' e:\projects\sdk-2008-11-29_\pfc\primitives.h(89): error C2059: syntax error : ';' e:\projects\sdk-2008-11-29_\pfc\primitives.h(90): error C2332: 'class' : missing tag name e:\projects\sdk-2008-11-29_\pfc\primitives.h(90): error C2143: syntax error : missing ';' before 'static_assert' e:\projects\sdk-2008-11-29_\pfc\primitives.h(90): error C2913: explicit specialization; 'pfc::<unnamed-tag>' is not a specialization of a class template e:\projects\sdk-2008-11-29_\pfc\primitives.h(90): error C2059: syntax error : '<' e:\projects\sdk-2008-11-29_\pfc\primitives.h(90): error C2143: syntax error : missing ';' before '{' e:\projects\sdk-2008-11-29_\pfc\primitives.h(90): error C2447: '{' : missing function header (old-style formal list?) This is because the defined class at line 89 - static_assert - in a reserved keyword in the upcoming C++0x standard. This feature has been implemented in VS2010, see MSDN . Simply renaming the class throughout the SDK projects fixes the problem.