Game Development Community

JournaledSignal Template compilation issue

by Steve Lamperti · in Torque Game Engine Advanced · 03/09/2009 (2:37 pm) · 3 replies

I know this is going to be a hard one for anyone to help me with, but I am getting the following errors when I try to compile files that use the JournaledSignal object in TGEA. The problem may well have something something to do with the compiler we are using, which is the final version of CodeWarrior on the Macintosh, but I am hoping that someone will be able to help me anyway. I'm quite stumped by these messages.

Error   : illegal explicit conversion from 'void (Signal<void ()>::*)()const ' to
'void (Journal::*)()const '
 (point of instantiation: 'global scope')
  (instantiating: 'JournaledSignal<void ()>::trigger()')
   (instantiating: 'Journal::Call<Signal<void ()>>(Signal<void ()> *, void (Signal<void ()>::*)()const )')
(included from:
 console/console.h:17
 console/consoleObject.h:23
 console/simObject.h:10
 console/simBase.h:16
 sim/netObject.h:10
 sceneGraph/sceneObject.h:13
 T3D/gameBase.h:10
 T3D/shapebase.h:13
 ExtendItem.h:10
 ExtendItem.cpp:7)
journal.h line 542         Method((Obj* obj,void (Obj::*method)()),(mFile,id),())  

    (corresponding point of instantiation for 'Journal::Call<Signal<void ()>>(Signal<void ()> *, void (Signal<void ()>::*)()const )')
(included from:
 console/console.h:17
 console/consoleObject.h:23
 console/simObject.h:10
 console/simBase.h:16
 sim/netObject.h:10
 sceneGraph/sceneObject.h:13
 T3D/gameBase.h:10
 T3D/shapebase.h:13
 ExtendItem.h:10
 ExtendItem.cpp:7)
journaledSignal.h line 31         Journal::Call((Parent*)this, &Parent::trigger);  

    (corresponding point of instantiation for 'JournaledSignal<void ()>::trigger()')
(included from:
 console/console.h:17
 console/consoleObject.h:23
 console/simObject.h:10
 console/simBase.h:16
 sim/netObject.h:10
 sceneGraph/sceneObject.h:13
 T3D/gameBase.h:10
 T3D/shapebase.h:13
 ExtendItem.h:10
 ExtendItem.cpp:7)
journaledSignal.h line 30      {

The locations referred to are:

template<class Obj>
      Method((Obj* obj,void (Obj::*method)()),(mFile,id),())

in Journal.h

and

void trigger()
   {
      Journal::Call((Parent*)this, &Parent::trigger);
   }

in journaledSignal.h

#1
03/16/2009 (2:41 pm)
No one has any ideas?
#2
03/16/2009 (2:45 pm)
Use Xcode? Can CodeWarrior even compile Intel binaries for OS X?

Not very helpful, I know :p.
#3
03/16/2009 (3:36 pm)
We have a large existing project in codewarrior, and we are already working on leaving Codewarrior behind, but that's for a future version. The current build uses TGE in codewarrior successfully. I am now working on bringing up TGEA in this project, and getting the error I listed above.

Like I said, if anyone has any suggestions as to how to even work around the problem, please offer them. One thought I had, was to rip out the journaling, as I don't think that that's critical to my project, but I'm not sure how easy that will be to do, and if there's a relatively straight way to work around this problem, and not need to do that that would be much better.