Packets: fix for natty: Ensure correct linking of all referenced packet types (see...
[senf.git] / 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));
 }