Fix documentation build under maverick (doxygen 1.7.1)
[senf.git] / senf / Packets / Packet.cti
index bea3eaa..d8e06c1 100644 (file)
@@ -29,9 +29,9 @@
 #include <senf/Utils/Exception.hh>
 
 #define prefix_ inline
-///////////////////////////////cti.p///////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 // senf::Packet
 
 // conversion constructors
@@ -67,6 +67,14 @@ prefix_ OtherPacket senf::Packet::as()
 }
 
 template <class OtherPacket>
+prefix_ OtherPacket senf::Packet::as(NoThrow_t)
+    const
+{
+    SENF_ASSERT( is<OtherPacket>(), "Bad cast, called packet::as(nothrow) with wrong PacketType");
+    return OtherPacket(ptr()->as<typename OtherPacket::type>());
+}
+
+template <class OtherPacket>
 prefix_ OtherPacket senf::Packet::next()
     const
 {
@@ -103,7 +111,8 @@ prefix_ OtherPacket senf::Packet::prev(NoThrow_t)
     const
 {
     Packet p (prev(nothrow));
-    return p && p.is<OtherPacket>() ? p.as<OtherPacket>() : OtherPacket();
+    return p && p.is<OtherPacket>() ?
+            OtherPacket(p.ptr()->as<typename OtherPacket::type>()) : OtherPacket();
 }
 
 template <class OtherPacket>
@@ -149,7 +158,7 @@ prefix_ Annotation const & senf::Packet::annotation()
     return ptr()->annotation<Annotation>();
 }
 
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 // senf::ConcretePacket<PacketType>
 
 // structors and default members
@@ -318,14 +327,13 @@ prefix_ senf::ConcretePacket<PacketType>::ConcretePacket(typename interpreter::p
 {}
 
 template <class PacketType>
-prefix_ typename senf::ConcretePacket<PacketType>::interpreter::ptr
-senf::ConcretePacket<PacketType>::ptr()
+prefix_ typename senf::ConcretePacket<PacketType>::interpreter * senf::ConcretePacket<PacketType>::ptr()
     const
 {
-    return boost::static_pointer_cast< PacketInterpreter<PacketType> >(Packet::ptr());
+    return static_cast< PacketInterpreter<PacketType> *>( Packet::ptr().get());
 }
 
-///////////////////////////////cti.e///////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 #undef prefix_
 
 \f