diff options
Diffstat (limited to 'include/internal/catch_singletons.hpp')
-rw-r--r-- | include/internal/catch_singletons.hpp | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/include/internal/catch_singletons.hpp b/include/internal/catch_singletons.hpp deleted file mode 100644 index fbc4b32c..00000000 --- a/include/internal/catch_singletons.hpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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) - */ -#ifndef TWOBLUECUBES_CATCH_SINGLETONS_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_SINGLETONS_HPP_INCLUDED - -namespace Catch { - - struct ISingleton { - virtual ~ISingleton(); - }; - - - void addSingleton( ISingleton* singleton ); - void cleanupSingletons(); - - - template<typename SingletonImplT, typename InterfaceT = SingletonImplT, typename MutableInterfaceT = InterfaceT> - class Singleton : SingletonImplT, public ISingleton { - - static auto getInternal() -> Singleton* { - static Singleton* s_instance = nullptr; - if( !s_instance ) { - s_instance = new Singleton; - addSingleton( s_instance ); - } - return s_instance; - } - - public: - static auto get() -> InterfaceT const& { - return *getInternal(); - } - static auto getMutable() -> MutableInterfaceT& { - return *getInternal(); - } - }; - -} // namespace Catch - -#endif // TWOBLUECUBES_CATCH_SINGLETONS_HPP_INCLUDED |