| 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
 
 
  |