From 795258ff738e51287628289e4f82f654afdc6fc2 Mon Sep 17 00:00:00 2001 From: g0dil <g0dil@wiback.org> Date: Mon, 16 Oct 2006 10:56:04 +0000 Subject: [PATCH] Fixes for g++-4 --- Packets/PacketRegistry.ih | 1 + Packets/ParserBase.ih | 6 +++--- Packets/ParserBase.test.cc | 4 ++++ Packets/typeidvalue.hh | 1 + 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Packets/PacketRegistry.ih b/Packets/PacketRegistry.ih index 2a752b2c6..f01450655 100644 --- a/Packets/PacketRegistry.ih +++ b/Packets/PacketRegistry.ih @@ -35,6 +35,7 @@ namespace pkf { namespace impl { struct PkReg_Entry { + virtual ~PkReg_Entry() {} virtual void registerInterpreter(Packet const * p, Packet::iterator b, Packet::iterator e) = 0; virtual Packet::ptr reinterpret(Packet * p) = 0; diff --git a/Packets/ParserBase.ih b/Packets/ParserBase.ih index 3cb5eb129..924189ac0 100644 --- a/Packets/ParserBase.ih +++ b/Packets/ParserBase.ih @@ -45,11 +45,11 @@ namespace impl { Parser_traits_fixed_size_check(&Parser::bytes))-sizeof(Parser_traits_sentinel<1>); }; - template <class T> - Parser_traits_sentinel<2> Parser_traits_fixed_size_check(T); + template <class R> + Parser_traits_sentinel<2> Parser_traits_fixed_size_check(R (*)()); template <class R,class T> - Parser_traits_sentinel<1> Parser_traits_fixed_size_check(R (T::*)()); + Parser_traits_sentinel<1> Parser_traits_fixed_size_check(R (T::*)() const); template <class Parser, class Iterator> bool check(Iterator const & b, Iterator const & e, ParserBase *); diff --git a/Packets/ParserBase.test.cc b/Packets/ParserBase.test.cc index dca6b77b2..b1a898304 100644 --- a/Packets/ParserBase.test.cc +++ b/Packets/ParserBase.test.cc @@ -28,6 +28,7 @@ // Custom includes #include "ParserBase.hh" #include "Packet.hh" +#include <boost/static_assert.hpp> #include <boost/test/auto_unit_test.hpp> #include <boost/test/test_tools.hpp> @@ -85,6 +86,9 @@ namespace { BOOST_AUTO_UNIT_TEST(parserBase_construction) { + BOOST_STATIC_ASSERT( pkf::Parser_traits< Parse_Test<> >::fixed_size ); + BOOST_STATIC_ASSERT( ! pkf::Parser_traits< Parse_Test2<> >::fixed_size ); + BOOST_CHECK_EQUAL( pkf::min_bytes< Parse_Test<int> >(), 14u ); BOOST_CHECK( pkf::check< Parse_Test<int> >(0,14) ); BOOST_CHECK( ! pkf::check< Parse_Test<int> >(2,15) ); diff --git a/Packets/typeidvalue.hh b/Packets/typeidvalue.hh index 425c14fbb..bb03dbed3 100644 --- a/Packets/typeidvalue.hh +++ b/Packets/typeidvalue.hh @@ -68,6 +68,7 @@ namespace lib { template <class Type> TypeIdValue(Type *); struct Value { + virtual ~Value() {} virtual std::type_info const & id() = 0; virtual Value * clone() = 0; }; -- GitLab