13
这是另一个VC9与GCC 4.2编译错误问题。下面的代码编译与VC9(微软的Visual C++ 2008 SP1)的罚款,但不与GCC 4.2在Mac上:如何在C++模板代码中修复“期望的主表达式”错误?
struct C
{
template< typename T >
static bool big() { return sizeof(T) > 8; }
};
template< typename X >
struct UseBig
{
static bool test()
{
return X::big<char>(); // ERROR: expected primary-expression
} // before 'char'
};
int main()
{
C::big<char>();
UseBig<C>::test();
return 0;
}
任何想法如何,我可以解决这个问题?
每隔一段时间就会出现一次,因为很难找到它。为了记录,GCC用于在Visual Studio没有编译时进行编译。海湾合作委员会消除了这种行为,因为它引起了很多头部划痕,并且不符合标准。 – 2010-01-21 09:38:37