D
david
template< typename T >
void f( T & t )
{
t.g<int>();
}
MSVC 2005 compiles this without problems (yes, even when it's
instantiated). g++ gives errors. Comeau compiles in "relaxed" mode,
but in "strict" mode gives
"ComeauTest.c", line 4: error: type name is not allowed
t.g<int>();
^
"ComeauTest.c", line 4: error: expected an expression
t.g<int>();
^
Clearly, it's assuming the < is a less-than operator. What is the
"strict" way of doing this?
void f( T & t )
{
t.g<int>();
}
MSVC 2005 compiles this without problems (yes, even when it's
instantiated). g++ gives errors. Comeau compiles in "relaxed" mode,
but in "strict" mode gives
"ComeauTest.c", line 4: error: type name is not allowed
t.g<int>();
^
"ComeauTest.c", line 4: error: expected an expression
t.g<int>();
^
Clearly, it's assuming the < is a less-than operator. What is the
"strict" way of doing this?