Packets: fix for natty: Ensure correct linking of all referenced packet types (see...
tho [Thu, 21 Jul 2011 16:11:35 +0000 (16:11 +0000)]
(maybe g0dil knows a smarter way)

git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@1800 270642c3-0616-0410-b53a-bc976706d245

senf/Packets/PacketInterpreter.cti

index 4c4a18e..469d617 100644 (file)
 template <class Type>
 prefix_ bool senf::PacketInterpreterBase::is()
 {
-    { static void const * const _ ((void*)&Type::dump); (void) _; }
+    // ensure that the template argument is included in the corresponding object file when linking:
+    { static typename PacketInterpreter<Type>::factory_t _ (PacketInterpreter<Type>::factory()); (void) _;}
     return dynamic_cast< PacketInterpreter<Type>* >(this);
 }
 
 template <class Type>
 prefix_ typename senf::PacketInterpreter<Type>::ptr senf::PacketInterpreterBase::as()
 {
-    { static void const * const _ ((void*)&Type::dump); (void) _; }
+    // ensure that the template argument is included in the corresponding object file when linking:
+    { static typename PacketInterpreter<Type>::factory_t _ (PacketInterpreter<Type>::factory()); (void) _;}
     return typename PacketInterpreter<Type>::ptr(
         static_cast< PacketInterpreter<Type>* >(this));
 }