Sleeping Wombat Common Library  0.50.0
swCommonLibrary
ObjectDeleter.h
Go to the documentation of this file.
1 #pragma once
2 
10 class ResourceObject;
11 template <class TYPE> class ResourceContainer;
12 template< class ResourceType > class ResourceContainer;
13 template<> class ResourceContainer< ResourceObject >;
14 
15 namespace sw
16 {
17 class AssetsManager;
18 } // sw
19 
40 template<typename class_type> class ObjectDeleterKey
41 {
42  friend class ResourceManager;
43  friend class sw::AssetsManager;
44  friend class ResourceContainer<class_type>;
45  friend class ResourceContainer< ResourceObject >;
46  friend class RenderTargetObject;
47 private:
48  ObjectDeleterKey() = default;
51 public:
52 };
53 
65 template<typename class_type> class ObjectDeleter
66 {
67 private:
68  ObjectDeleter() = default;
69  ObjectDeleter( const ObjectDeleter& ) = default;
70 public:
71  ObjectDeleter( const ObjectDeleterKey<class_type>& deleter_key ) {};
72 
76  inline void delete_object( class_type* object )
77  {
78  delete object;
79  }
80 
85  static inline void delete_object( class_type* object, const ObjectDeleterKey<class_type>& deleter_key )
86  {
87  delete object;
88  }
89 };
ObjectDeleterKey(const ObjectDeleterKey &)
Tylko klasa zaprzyjaźniona może stworzyć obiekt.
Definition: ObjectDeleter.h:49
static void delete_object(class_type *object, const ObjectDeleterKey< class_type > &deleter_key)
Kasuje podany w parametrze obiekt.
Definition: ObjectDeleter.h:85
Definition: Exception.h:11
Definition: ObjectDeleter.h:11
ObjectDeleterKey()=default
Tylko klasa zaprzyjaźniona może stworzyć obiekt.
Klasa służy do kasowania obiektów, których destruktor jest prywatny.Taka sytuacja zachodzi w momencie...
Definition: ObjectDeleter.h:65
You can specify classes that can delete objects with private constructors.
Definition: ObjectDeleter.h:40
ObjectDeleterKey(const ObjectDeleterKey &&)
Tylko klasa zaprzyjaźniona może stworzyć obiekt.
Definition: ObjectDeleter.h:50
void delete_object(class_type *object)
Jedyny dostępny do wywołania konstruktor, tylko dla wybrańców.
Definition: ObjectDeleter.h:76
ObjectDeleter()=default
Nie można stworzyć obiektu nie mając klucza.