X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacketImpl.hh;h=32ae5a17a0b79eda12fde332d4fe72c231f22bed;hb=fd3a0e8ac95d1158e9ea661ddf9187b67c70169f;hp=ea76bd60a5cb4cb3270dbdc1e6f916ab4d6a4e92;hpb=fe283e18667bee3034543fc2170177df9d3e8ee8;p=senf.git diff --git a/Packets/PacketImpl.hh b/Packets/PacketImpl.hh index ea76bd6..32ae5a1 100644 --- a/Packets/PacketImpl.hh +++ b/Packets/PacketImpl.hh @@ -23,15 +23,16 @@ /** \file \brief PacketImpl public header */ -#ifndef HH_PacketImpl_ -#define HH_PacketImpl_ 1 +#ifndef HH_SENF_Packets_PacketImpl_ +#define HH_SENF_Packets_PacketImpl_ 1 // Custom includes #include #include #include #include -#include +#include +#include #include #include "../Utils/pool_alloc_mixin.hh" #include "PacketTypes.hh" @@ -96,11 +97,15 @@ namespace detail { static bool const Complex = boost::is_base_of::value; static bool const Small = (sizeof(Annotation) <= sizeof(AnnotationEntry) && ! Complex); +# if 0 // The test is difficult since it does not work with user-defined trivial constructors # ifdef BOOST_HAS_TYPE_TRAITS_INTRINSICS - BOOST_STATIC_ASSERT(( boost::is_pod::value || Complex )); + BOOST_STATIC_ASSERT(( (boost::has_trivial_constructor::value + && boost::has_trivial_destructor::value) + || Complex )); # endif +# endif }; template ::Small> @@ -180,6 +185,9 @@ namespace detail { void erase(PacketData * self, iterator first, iterator last); void clear(PacketData * self); + void reserve(size_type n); + size_type capacity() const; + // Annotations template Annotation & annotation(); @@ -214,8 +222,8 @@ namespace detail { ///////////////////////////////hh.e//////////////////////////////////////// #endif -#if !defined(HH_Packets__decls_) && !defined(HH_PacketImpl_i_) -#define HH_PacketImpl_i_ +#if !defined(HH_SENF_Packets_Packets__decls_) && !defined(HH_SENF_Packets_PacketImpl_i_) +#define HH_SENF_Packets_PacketImpl_i_ #include "PacketImpl.cci" //#include "PacketImpl.ct" #include "PacketImpl.cti"