[thread_safe_signals] won't compile on VC71

Hello, I'm very impressed from Mr. Hess' work on thread safe signals for the boost library. In my opinion it's a great step to provide thread safe signals in a common library like boost and I like to use it as replacement for third party libs. Unfortunately I going in trouble when using the latest version of this module (thread_safe_signals-2007-03-19.tgz which is the same as out of the cvs). I can't get it compile on Microsoft VS71. I tried with gcc and VS8 and it works but for the VS71 compiler which we are working it fails. As mentioned in the documentation I included the headers of thread_safe_signals before the normal boost headers which are in fact 1_33_1 (same results with 1_34_0). The I picked up a sample project signal_test.cpp from boost/test/ and start to compile it but it fails with the following compiler hints: Kompilieren... signal_test.cpp ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(95) : error C2143: Syntaxfehler: Es fehlt ',' vor '&' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(109): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::slot0<R,SlotFunction>' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(95) : error C2143: Syntaxfehler: Es fehlt ',' vor '&' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(109): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::slot1<R,T1,SlotFunction>' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(95) : error C2143: Syntaxfehler: Es fehlt ',' vor '&' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(109): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::slot2<R,T1,T2,SlotFunction>' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(95) : error C2143: Syntaxfehler: Es fehlt ',' vor '&' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(109): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::slot3<R,T1,T2,T3,SlotFunction>' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(95) : error C2143: Syntaxfehler: Es fehlt ',' vor '&' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(109): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::slot4<R,T1,T2,T3,T4,SlotFunction>' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(95) : error C2143: Syntaxfehler: Es fehlt ',' vor '&' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(109): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::slot5<R,T1,T2,T3,T4,T5,SlotFunction>' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(95) : error C2143: Syntaxfehler: Es fehlt ',' vor '&' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(109): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::slot6<R,T1,T2,T3,T4,T5,T6,SlotFunction>' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(95) : error C2143: Syntaxfehler: Es fehlt ',' vor '&' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(109): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::slot7<R,T1,T2,T3,T4,T5,T6,T7,SlotFunction>' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(95) : error C2143: Syntaxfehler: Es fehlt ',' vor '&' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(109): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::slot8<R,T1,T2,T3,T4,T5,T6,T7,T8,SlotFunction>' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(95) : error C2143: Syntaxfehler: Es fehlt ',' vor '&' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(109): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::slot9<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,SlotFunction>' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(95) : error C2143: Syntaxfehler: Es fehlt ',' vor '&' ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.hpp(109): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::slot10<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,SlotFunction>' The same error comes up with other example snippets like doc_view.cpp or something else. At this stage I can't understand what is going on. Any help is very welcome. -- David Matz ---------------------------- Software Developer Spatial View GmbH david.matz<at>spatialview.com registration court: Amtsgericht Dresden, HRB 21104 managing directors: Wolfgang Opel, Jens Wiegrebe

On Friday 01 June 2007 08:51, David Matz wrote:
Unfortunately I going in trouble when using the latest version of this module (thread_safe_signals-2007-03-19.tgz which is the same as out of the cvs). I can't get it compile on Microsoft VS71. I tried with gcc and VS8 and it works but for the VS71 compiler which we are working it fails.
As mentioned in the documentation I included the headers of thread_safe_signals before the normal boost headers which are in fact 1_33_1 (same results with 1_34_0). The I picked up a sample project signal_test.cpp from boost/test/ and start to compile it but it fails with the following compiler hints:
Kompilieren... signal_test.cpp ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.h pp(95)
: error C2143: Syntaxfehler: Es fehlt ',' vor '&'
I don't have any Microsoft compilers, or speak German, but I wonder if fully-qualifying the slot_base parameter type would help? Like boost::signalslib::detail::slot_base -- Frank

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Frank Mori Hess wrote:
On Friday 01 June 2007 08:51, David Matz wrote:
Unfortunately I going in trouble when using the latest version of this module (thread_safe_signals-2007-03-19.tgz which is the same as out of the cvs). I can't get it compile on Microsoft VS71. I tried with gcc and VS8 and it works but for the VS71 compiler which we are working it fails.
As mentioned in the documentation I included the headers of thread_safe_signals before the normal boost headers which are in fact 1_33_1 (same results with 1_34_0). The I picked up a sample project signal_test.cpp from boost/test/ and start to compile it but it fails with the following compiler hints:
Kompilieren... signal_test.cpp ...\thread_safe_signals\boost\thread_safe_signals\detail\slot_template.h pp(95)
: error C2143: Syntaxfehler: Es fehlt ',' vor '&'
I don't have any Microsoft compilers, or speak German, but I wonder if fully-qualifying the slot_base parameter type would help? Like
boost::signalslib::detail::slot_base
Hello Frank, you are right! Adding the full-qualified name signalslib::detail::slot_base inside slot_template.hpp solves the problem and it compiles on VC71 too. I thank you very much. I found several compiler warnings belonging to unused parameters and variables. If you wish I'll send you the patches which removes these warnings. - -- David -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGY8cdwGp0ZRDfj9cRAjgqAKCRR8Zj9d+X0DjEzo6GXuwwlRKQ6wCgwUls Pjh6a0yqj1HnPKyQQU1qLHs= =egeX -----END PGP SIGNATURE-----
participants (2)
-
David Matz
-
Frank Mori Hess