diff --git a/Packets/PacketData.cti b/Packets/PacketData.cti index ffe2417ab66297d1c8af5c722f34f3516491df22..8486d879b8eb35bdef27bc362a9a8cac6be791d7 100644 --- a/Packets/PacketData.cti +++ b/Packets/PacketData.cti @@ -33,6 +33,7 @@ // Modifying the raw packet data +#ifndef DOXYGEN template <class InputIterator> prefix_ void senf::PacketData:: insert(iterator pos, InputIterator f, InputIterator l, @@ -40,6 +41,12 @@ insert(iterator pos, InputIterator f, InputIterator l, { impl().insert(this,pos,f,l); } +#else +template <class InputIterator> +prefix_ void senf::PacketData:: +insert(iterator pos, InputIterator f, InputIterator l) +{} +#endif ///////////////////////////////cti.e/////////////////////////////////////// #undef prefix_ diff --git a/Packets/PacketParser.ct b/Packets/PacketParser.ct index 5dd16a7472f68c1d223632eaab277422367228c6..47e41779459c480a90b43e426d508eb60b32496a 100644 --- a/Packets/PacketParser.ct +++ b/Packets/PacketParser.ct @@ -28,6 +28,7 @@ #define prefix_ ///////////////////////////////ct.p//////////////////////////////////////// +#ifndef DOXYGEN template <class Parser> prefix_ typename boost::enable_if< boost::is_base_of<senf::PacketParserBase, Parser>, @@ -45,6 +46,11 @@ prefix_ typename boost::enable_if< PacketParserBase::data_iterator(new_target.i()) ); return new_target; } +#else +template <class Parser> +prefix_ Parser senf::operator<<(Parser target, Parser source) +{} +#endif ///////////////////////////////ct.e//////////////////////////////////////// #undef prefix_ diff --git a/Packets/PacketParser.cti b/Packets/PacketParser.cti index 4945e3d1cf7ad532bbbc1b5ee282762f8c723367..777531bf9d16cb4fbb8cc798f09cb74d4c94ff78 100644 --- a/Packets/PacketParser.cti +++ b/Packets/PacketParser.cti @@ -59,6 +59,7 @@ prefix_ senf::PacketParserBase::size_type senf::bytes(Parser p) return detail::packetParserSize(p,0); } +#ifndef DOXYGEN template <class Parser, class Value> prefix_ typename boost::enable_if_c < boost::is_base_of<senf::PacketParserBase, Parser>::value @@ -68,6 +69,11 @@ prefix_ typename boost::enable_if_c < target.value(value); return target; } +#else +template <class Parser, class Value> +prefix_ Parser senf::operator<<(Parser target, Value const & value) +{} +#endif template <class Parser> prefix_ senf::PacketParserBase::size_type diff --git a/Packets/PacketParser.hh b/Packets/PacketParser.hh index 644e00d58670786796adc5f5a155769a4d418e0e..98fdbb25e17634de0717e32580172185b5b2247a 100644 --- a/Packets/PacketParser.hh +++ b/Packets/PacketParser.hh @@ -287,6 +287,13 @@ namespace senf { struct init_bytes : public detail::ParserInitBytes<Parser> {}; +# ifndef DOXYGEN + template <class Parser> + typename boost::enable_if< + boost::is_base_of<PacketParserBase, Parser>, + Parser >::type + operator<<(Parser target, Parser source); +# else /** \brief Generic parser copying This operator allows to copy the values of identical parsers. This operation does \e not @@ -299,17 +306,18 @@ namespace senf { \ingroup packetparser */ -# ifndef DOXYGEN - template <class Parser> - typename boost::enable_if< - boost::is_base_of<PacketParserBase, Parser>, - Parser >::type - operator<<(Parser target, Parser source); -# else template <class Parser> Parser operator<<(Parser target, Parser source); # endif +# ifndef DOXYGEN + template <class Parser, class Value> + typename boost::enable_if_c < + boost::is_base_of<PacketParserBase, Parser>::value + && ! boost::is_base_of<PacketParserBase, Value>::value, + Parser >::type + operator<<(Parser target, Value const & value); +# else /** \brief Generic parser value assignment This operator allows to assign a value to parsers which implement a <tt>value(</tt>\a @@ -319,11 +327,8 @@ namespace senf { \ingroup packetparser */ template <class Parser, class Value> - typename boost::enable_if_c < - boost::is_base_of<PacketParserBase, Parser>::value - && ! boost::is_base_of<PacketParserBase, Value>::value, - Parser >::type - operator<<(Parser target, Value const & value); + Parser operator<<(Parser target, Value const & value); +# endif /** \defgroup packetparsermacros Helper macros for defining new packet parsers diff --git a/Packets/ParseList.ct b/Packets/ParseList.ct index 45012bf7fc91fd77f2c18b2efa62e086a740573f..5cd98781c893b041939628a6cd2a6cda2ab3ed93 100644 --- a/Packets/ParseList.ct +++ b/Packets/ParseList.ct @@ -99,6 +99,7 @@ prefix_ void senf::Parse_List_Container<ListPolicy>::insert(iterator pos, } } +#ifndef DOXYGEN template <class ListPolicy> template <class ForwardIterator> prefix_ void senf::Parse_List_Container<ListPolicy>:: @@ -116,6 +117,13 @@ insert(iterator pos, ForwardIterator f, ForwardIterator l, sp += senf::bytes(value_type(sp,state())); } } +#else +template <class ListPolicy> +template <class ForwardIterator> +prefix_ void senf::Parse_List_Container<ListPolicy>:: +insert(iterator pos, ForwardIterator f, ForwardIterator l) +{} +#endif template <class ListPolicy> prefix_ void senf::Parse_List_Container<ListPolicy>::erase(iterator pos, diff --git a/Packets/ParseVec.ct b/Packets/ParseVec.ct index 64493eb249bd62662c84cf96d44fab5b819a5233..d76caf3ef71ff3a2c819542bb03620c9a8dd9f2b 100644 --- a/Packets/ParseVec.ct +++ b/Packets/ParseVec.ct @@ -79,6 +79,7 @@ prefix_ void senf::Parse_Vector_Container<ElementParser,Sizer>::insert(iterator *j << t; } +#ifndef DOXYGEN template <class ElementParser, class Sizer> template <class ForwardIterator> prefix_ void senf::Parse_Vector_Container<ElementParser,Sizer>:: @@ -88,6 +89,13 @@ insert(iterator pos, ForwardIterator f, ForwardIterator l, for (iterator j (shift(pos,std::distance(f,l))); f!=l; ++f,++j) *j << *f; } +#else +template <class ElementParser, class Sizer> +template <class ForwardIterator> +prefix_ void senf::Parse_Vector_Container<ElementParser,Sizer>:: +insert(iterator pos, ForwardIterator f, ForwardIterator l) +{} +#endif template <class ElementParser, class Sizer> prefix_ void senf::Parse_Vector_Container<ElementParser,Sizer>::resize(size_type n) diff --git a/Socket/ClientSocketHandle.cti b/Socket/ClientSocketHandle.cti index 96508800fb8eb0c57bf000b783f9d2d6c79abd76..7f46c6cb079628388d5c383271a2e99c28aabfbe 100644 --- a/Socket/ClientSocketHandle.cti +++ b/Socket/ClientSocketHandle.cti @@ -138,6 +138,7 @@ senf::ClientSocketHandle<Policy>::operator=(ClientSocketHandle<OtherPolicy> othe // senf::ClientSocketHandle<Policy>::read +#ifndef DOXYGEN template <class Policy> template <class ForwardWritableRange> prefix_ typename boost::range_iterator<ForwardWritableRange>::type @@ -153,6 +154,14 @@ read(ForwardWritableRange const & range, >::value && sizeof(typename boost::range_value<ForwardWritableRange>::type)==sizeof(char) >::read(*this, range); } +#else +template <class Policy> +template <class ForwardWritableRange> +prefix_ typename boost::range_iterator<ForwardWritableRange>::type +senf::ClientSocketHandle<Policy>:: +read(ForwardWritableRange const & range) +{} +#endif template <class Policy> template <class ForwardWritableRange> diff --git a/Socket/LLAddressing.cti b/Socket/LLAddressing.cti index 42e9934a5ec9c3981d7392b149789de88e99b1db..c40134345bef3621f2024c12727b9241c6370794 100644 --- a/Socket/LLAddressing.cti +++ b/Socket/LLAddressing.cti @@ -32,6 +32,7 @@ #define prefix_ inline ///////////////////////////////cti.p/////////////////////////////////////// +#ifndef DOXYGEN template <class ForwardRange> prefix_ senf::LLSocketAddress:: LLSocketAddress(ForwardRange const & address, std::string interface, @@ -41,6 +42,12 @@ LLSocketAddress(ForwardRange const & address, std::string interface, this->address(address); this->interface(interface); } +#else +template <class ForwardRange> +prefix_ senf::LLSocketAddress:: +LLSocketAddress(ForwardRange const & address, std::string interface) +{} +#endif ///////////////////////////////cti.e/////////////////////////////////////// #undef prefix_