00001 /* 00002 Copyright 2015 Dr. Blatt - HPC-Simulation-Software & Services 00003 Copyright 2015 Statoil AS 00004 00005 This file is part of the Open Porous Media project (OPM). 00006 00007 OPM is free software: you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by 00009 the Free Software Foundation, either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 OPM is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with OPM. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 #ifndef OPM_ADDITIONALOBJECTDELETER_HEADER_INCLUDED 00021 #define OPM_ADDITIONALOBJECTDELETER_HEADER_INCLUDED 00022 namespace Opm 00023 { 00035 template<class T> 00036 class AdditionalObjectDeleter 00037 { 00038 public: 00040 AdditionalObjectDeleter() 00041 : additional_object_() 00042 {} 00044 AdditionalObjectDeleter(T& additional_object) 00045 : additional_object_(&additional_object){} 00047 template<class T1> 00048 void operator()(T1* pt) 00049 { 00050 delete pt; 00051 delete additional_object_; 00052 } 00053 private: 00054 T* additional_object_; 00055 }; 00056 00057 } 00058 #endif