| 123456789101112131415161718192021222324252627282930313233343536 | /* *  Created by Phil Nash on 15/6/2018. * *  Distributed under the Boost Software License, Version 1.0. (See accompanying *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */#include "catch_singletons.hpp"#include <vector>namespace Catch {    namespace {        static auto getSingletons() -> std::vector<ISingleton*>*& {            static std::vector<ISingleton*>* g_singletons = nullptr;            if( !g_singletons )                g_singletons = new std::vector<ISingleton*>();            return g_singletons;        }    }    ISingleton::~ISingleton() {}    void addSingleton(ISingleton* singleton ) {        getSingletons()->push_back( singleton );    }    void cleanupSingletons() {        auto& singletons = getSingletons();        for( auto singleton : *singletons )            delete singleton;        delete singletons;        singletons = nullptr;    }} // namespace Catch
 |