Hi, when I'm trying to compile this code with gcc 4 I get this strange
error :
alex@deimos:~/Desktop/Image$ make -k Image
g++ Image.cpp -o Image
Image.cpp:29: error: expected initializer before 'Image'
make: *** [Image] Error 1
The code of the source of Image.cpp is the following:
#include <string>
#include <map>
class A {
private:
typedef std::map<std::string, intmaptype_t;
static const maptype_t _mapconst;
static maptype_t _init_mapconst();
}
inline A::maptype_t
A::_init_mapconst() // line 15
{
maptype_t m;
m["aaa"] = 23;
m["acb"] = 42;
return m;
}
const A::maptype_t
A::_mapconst =
A::_init_mapconst();
int main()
{
}
The problem seems to be not present if I remove the template leaving
as a common class the Image one. I think it's due by the fact that
compiler cannot predict the form of Handler before it has not been
istantiated ... but I'm not sure ... could you help me ?
Is a solution to templatizate also the Handler class and moreover move
it outside the Image class ?
Thank you in advance.
Alessandro