CommonLibSSE NG
IBSTCreator.h
Go to the documentation of this file.
1 #pragma once
2 
3 namespace RE
4 {
5  template <class T>
6  struct IBSTCreator
7  {
8  public:
9  virtual ~IBSTCreator(); // 00
10 
11  protected:
12  // add
13  [[nodiscard]] virtual T* CreateImpl() const = 0; // 01
14 
15  public:
16  virtual void Destroy(const T* a_val) const = 0; // 02
17 
18  [[nodiscard]] inline T* Create() const
19  {
20  return CreateImpl();
21  }
22  };
23  static_assert(sizeof(IBSTCreator<void*>) == 0x8);
24 }
Definition: AbsorbEffect.h:6
Definition: IBSTCreator.h:7
virtual T * CreateImpl() const =0
T * Create() const
Definition: IBSTCreator.h:18
virtual ~IBSTCreator()
virtual void Destroy(const T *a_val) const =0