Console: More documentation and cleanup
[senf.git] / Packets / Packet.cti
index bea5af7..b824c09 100644 (file)
@@ -26,6 +26,7 @@
 //#include "Packet.ih"
 
 // Custom includes
+#include "../Utils/Exception.hh"
 
 #define prefix_ inline
 ///////////////////////////////cti.p///////////////////////////////////////
@@ -61,7 +62,7 @@ prefix_ OtherPacket senf::Packet::as()
     const
 {
     if (!is<OtherPacket>())
-        throw std::bad_cast();
+        throw WrapException<std::bad_cast>(std::bad_cast());
     return OtherPacket(ptr()->as<typename OtherPacket::type>());
 }
 
@@ -173,10 +174,13 @@ senf::ConcretePacket<PacketType>::create(size_type size, senf::NoInit_t)
     return ConcretePacket(interpreter::create(size,senf::noinit));
 }
 
+#ifndef DOXYGEN
+
 template <class PacketType>
 template <class ForwardReadableRange>
-prefix_ senf::ConcretePacket<PacketType>
-senf::ConcretePacket<PacketType>::create(ForwardReadableRange const & range)
+prefix_ senf::ConcretePacket<PacketType> senf::ConcretePacket<PacketType>::
+create(ForwardReadableRange const & range,
+       typename boost::disable_if< boost::is_integral<ForwardReadableRange> >::type *)
 {
     return ConcretePacket(interpreter::create(range));
 }
@@ -190,6 +194,8 @@ senf::ConcretePacket<PacketType>::createAfter(Packet packet)
     return ConcretePacket(interpreter::createAfter(packet.ptr()));
 }
 
+#endif
+
 template <class PacketType>
 prefix_ senf::ConcretePacket<PacketType>
 senf::ConcretePacket<PacketType>::createAfter(Packet packet, senf::NoInit_t)
@@ -213,8 +219,9 @@ senf::ConcretePacket<PacketType>::createAfter(Packet packet, size_type size, sen
 
 template <class PacketType>
 template <class ForwardReadableRange>
-prefix_ senf::ConcretePacket<PacketType>
-senf::ConcretePacket<PacketType>::createAfter(Packet packet, ForwardReadableRange const & range)
+prefix_ senf::ConcretePacket<PacketType> senf::ConcretePacket<PacketType>::
+createAfter(Packet packet, ForwardReadableRange const & range,
+            typename boost::disable_if< boost::is_integral<ForwardReadableRange> >::type *)
 {
     return ConcretePacket(interpreter::createAfter(packet.ptr(), range));
 }