gcc compiler does not recognize my class when using shared_ptr
It's strange. I never ran into this problem before. I have a class called
Message. When compile message.cc, it's okay. But when compile another
class sign which uses Message class. GCC outputs error. I list my
commands, the first one succeeds
/usr/bin/c++ -g -I../codes/main/include
-I../codes/main/src/../../loki-0.1.7/include -Wall -o ./o/endian.cc.o -c
../codes/main/src/business/messages/message.cc
The second one failed. I guess gcc don't thinks Message is a valid class.
But why?
/usr/bin/c++ -g -I../codes/main/include
-I../codes/main/src/../../loki-0.1.7/include -Wall -o ./o/sign.cc.o -c
../codes/main/src/business/sign.cc
../codes/main/src/business/sign.cc: In member function 'virtual void
Sign::StartJob()':
../codes/main/src/business/sign.cc:49:21: error: template argument 1 is
invalid
shared_ptr<Message> init_request(new InitRequest());
^
../codes/main/src/business/sign.cc:49:35: error: invalid type in
declaration before '(' token
shared_ptr<Message> init_request(new InitRequest());
^
../codes/main/src/business/sign.cc:49:53: error: invalid conversion from
'InitRequest*' to 'int' [-fpermissive]
shared_ptr<Message> init_request(new InitRequest());
Any idea for profiling this problem?
No comments:
Post a Comment