reduce include dependencies of DelStash

...get rid of some further Boost includes and remove unnecessary disable_if
This commit is contained in:
Fischlurch 2018-04-01 00:37:58 +02:00
parent f0eeafddaa
commit 992056ea69
2 changed files with 9 additions and 26 deletions

View file

@ -47,16 +47,12 @@
#include "lib/error.hpp"
#include "lib/nocopy.hpp"
#include <vector>
#include <algorithm>
#include <boost/utility/enable_if.hpp>
#include <boost/type_traits/is_same.hpp>
#include <vector>
namespace lib {
using boost::disable_if_c;
using boost::is_same;
/**
* Manage a collection of deleter functions.
@ -82,14 +78,14 @@ namespace lib {
public:
Killer(KillFun* f, void* t)
: target_(t)
, killIt_(f)
: target_{t}
, killIt_{f}
{
REQUIRE(f);
}
void
trigger ()
trigger()
{
if (target_)
killIt_(target_);
@ -115,7 +111,7 @@ namespace lib {
public:
DelStash (size_t elms_to_reserve =0)
: killers_()
{
{
if (elms_to_reserve)
{
killers_.reserve (elms_to_reserve);
@ -144,14 +140,10 @@ namespace lib {
}
#define __DONT_USE_THIS_OVERLOAD_FOR_VOID_POINTER_ \
typename disable_if_c< is_same<TY,void>::value \
||is_same<TY,void*>::value>::type* =0
template<typename TY>
void
manage (TY* obj, __DONT_USE_THIS_OVERLOAD_FOR_VOID_POINTER_)
manage (TY* obj)//, __disable_if_voidPtr<TY> =0)
{
if (!obj) return;
REQUIRE (!isRegistered (obj));
@ -160,21 +152,12 @@ namespace lib {
template<typename TY>
void
manage (TY& obj, __DONT_USE_THIS_OVERLOAD_FOR_VOID_POINTER_)
manage (TY& obj)//, __disable_if_voidPtr<TY> =0)
{
REQUIRE (!isRegistered (&obj));
killers_.push_back (Killer (how_to_kill<TY>, &obj));
}
template<typename TY>
void
manage (void* obj)
{
if (!obj) return;
REQUIRE (!isRegistered (obj));
killers_.push_back (Killer (how_to_kill<TY>, obj));
}
void
manage (void* obj, KillFun* customDeleter)
{
@ -231,7 +214,7 @@ namespace lib {
findEntry (const void* obj)
{
REQUIRE (obj);
return std::find(killers_.begin(),killers_.end(), obj);
return std::find (killers_.begin(),killers_.end(), obj);
}
void

View file

@ -134,7 +134,7 @@ namespace test{
killer.manage (p);
killer.manage (r);
killer.manage<Probe<9>> (v);
killer.manage (static_cast<Probe<9>*> (v));
CHECK (3 == killer.size());