I developed an application in VC++ an now I want to compile it using GNU++ to be run on a ubuntu server (where I am actually trying tocompile it). After some syntax/usage corrections I get an error which I totally don't understand (and I don't have it in VC++, of course).
The error is

Utils.h: In static member function âstatic void brickheuristics::TL2FunV<TList, SearchFun>::FillVector(std::vector<SearchFun, std::allocator<_Tp> >&)â:
Utils.h:43: error: expected `;' before âhâ

Now, the function it refers to is the following (error at the 4th line)

template< class TList, class SearchFun >
struct TL2FunV{
	static void FillVector( std::vector< SearchFun >& v ){
		TList::Head h;
		v.push_back( SearchFun(h) );
		TL2FunV<typename TList::Tail, SearchFun>::FillVector( v );

This application uses the Loki library, which is provided in /usr/lib and the includes in /usr/include.
Head is a typedef in Loki::TypeList, which is the type that is being provided to the function.
Does anyone know what the problem is/may be? Can someone identify a known difference between compilers? I would appreciate if someone could head me in the right direction to solve this.

Thank you in advance

7 Years
Discussion Span
Last Post by rmlopes

Because it is a template parameter derived type it needs the typename keyword before.. For some reason VC++ compiles anyway...

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.