several fixes for clang/llvm
[senf.git] / senf / Packets / PacketInterpreter.hh
index 953c187..d7fb09b 100644 (file)
 namespace senf {
 
     template <class PacketType> class PacketInterpreter;
+    
+    void intrusive_ptr_add_ref(PacketInterpreterBase const * p);
+    void intrusive_ptr_release(PacketInterpreterBase const * p);
 
+    
     /** \brief Internal: Base packet interpreter class
 
         \internal
@@ -153,7 +157,6 @@ namespace senf {
 
         template <class Type> typename PacketInterpreter<Type>::ptr parseNextAs();
                                        ptr                          parseNextAs(factory_t factory, PacketInterpreterBase::optional_range const & range);
-        template <class Type>          bool                         is();
         template <class Type> typename PacketInterpreter<Type>::ptr as();
 
         ptr append(ptr packet);
@@ -233,16 +236,13 @@ namespace senf {
         friend class detail::PacketImpl;
         friend class intrusive_refcount_base;
         template <class PacketType> friend class PacketInterpreter;
-        friend class detail::packet::test::TestDriver;
+        friend struct detail::packet::test::TestDriver;
         friend class PacketParserBase;
 
         friend void senf::intrusive_ptr_add_ref(PacketInterpreterBase const *);
         friend void senf::intrusive_ptr_release(PacketInterpreterBase const *);
     };
 
-    void intrusive_ptr_add_ref(PacketInterpreterBase const * p);
-    void intrusive_ptr_release(PacketInterpreterBase const * p);
-
     /** \brief Internal: Concrete packet interpreter
 
         \internal
@@ -402,9 +402,9 @@ namespace senf {
 
         static const FactoryImpl factory_;
 
-        friend class detail::packet::test::TestDriver;
+        friend struct detail::packet::test::TestDriver;
         friend class PacketInterpreterBase;
-        friend class FactoryImpl;
+        friend struct FactoryImpl;
     };
 
     /** \brief Invalid packet chain operation