Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
Binder.hpp
[詳解]
5
6#pragma once
7
8#include "Exception.h"
9
10namespace alt
11{
12 namespace skeleton
13 {
16 template <class T, class... Args>
17 class Binder
18 {
19 public:
21 Binder<T, Args...> ()
22 {
23 _value = nullptr;
24 };
25
28 Binder<T, Args...> (T* t)
29 {
30 _value = t;
31 }
32
34 virtual APIENTRY ~Binder ()
35 {
36 Delete ();
37 };
38
44 bool APIENTRY New (Args... args)
45 {
46 _value = new T (args...);
47 return _value == nullptr ? false : true;
48 };
49
51 VOID APIENTRY Delete ()
52 {
53 delete _value;
54 _value = nullptr;
55 };
56
59 T* APIENTRY Get () const
60 {
61 if (_value == nullptr)
62 {
64 }
65
66 return _value;
67 }
68
71 T* APIENTRY operator -> () const
72 {
73 return Get ();
74 }
75
78 VOID APIENTRY Set (T* t)
79 {
80 if (_value != nullptr)
81 {
82 delete _value;
83 }
84
85 _value = t;
86 };
87
88 private:
89 Binder<T, Args...> (const Binder<T, Args...>&) = delete;
90 VOID operator = (const Binder<T, Args...>&) = delete;
92 };
93 }
94}
例外に関するクラス
実行時エラー例外
Definition: Exception.h:54
newオブジェクトを管理するコンテナクラス
Definition: Binder.hpp:18
T *APIENTRY Get() const
管理オブジェクトの取得
Definition: Binder.hpp:59
T *APIENTRY operator->() const
管理オブジェクトの取得
Definition: Binder.hpp:71
VOID APIENTRY Set(T *t)
外部から管理オブジェクトを設定
Definition: Binder.hpp:78
bool APIENTRY New(Args... args)
管理オブジェクトの作成
Definition: Binder.hpp:44
VOID operator=(const Binder< T, Args... > &)=delete
VOID APIENTRY Delete()
管理オブジェクトの開放
Definition: Binder.hpp:51
virtual APIENTRY ~Binder()
デストラクタ
Definition: Binder.hpp:34
Definition: DBLibrary.h:12