1717 DEFINE_CALLBACK_MANAGER_INTERNAL (NAME, TYPE, RecursiveMutex)
1818
1919#define DEFINE_CALLBACK_MANAGER_INTERNAL (NAME, CALLBACK_TYPE, MUTEX_TYPE ) \
20- struct NAME ##CallbackTraits: public CallbackTraits<NAME##CallbackTraits, CALLBACK_TYPE, MUTEX_TYPE> {};
20+ struct NAME ##CallbackTraits final : public CallbackTraits<NAME##CallbackTraits, CALLBACK_TYPE, MUTEX_TYPE> {};
2121
2222#define CALLBACK_MANAGER (NAME ) \
2323 CallbackManager<NAME##CallbackTraits>
2727// -----------------------------------------------------------------------------
2828
2929template <typename TTraits, typename TCallback, typename TMutex>
30- class CallbackTraits
30+ class CallbackTraits final
3131{
3232 PROHIBIT_CONSTRUCT (CallbackTraits)
3333
@@ -61,7 +61,7 @@ TMutex* CallbackTraits<TTraits, TCallback, TMutex>::ms_pMutex = new TMutex;
6161// -----------------------------------------------------------------------------
6262
6363template <typename TTraits, size_t NIndex, typename TCallback>
64- class CallbackSlot
64+ class CallbackSlot final
6565{
6666 PROHIBIT_CONSTRUCT (CallbackSlot)
6767};
@@ -72,7 +72,7 @@ class CallbackSlot
7272
7373
7474template <typename TTraits, size_t NIndex, typename TResult>
75- class CallbackSlot <TTraits, NIndex, TResult()>
75+ class CallbackSlot <TTraits, NIndex, TResult()> final
7676{
7777 PROHIBIT_CONSTRUCT (CallbackSlot)
7878
@@ -134,7 +134,7 @@ template <typename TTraits, size_t NIndex, typename TResult>
134134std::function<TResult()>* CallbackSlot<TTraits, NIndex, TResult()>::ms_pFunction = nullptr ;
135135
136136template <typename TTraits, size_t NIndex, typename TResult, typename T0>
137- class CallbackSlot <TTraits, NIndex, TResult(T0)>
137+ class CallbackSlot <TTraits, NIndex, TResult(T0)> final
138138{
139139 PROHIBIT_CONSTRUCT (CallbackSlot)
140140
@@ -196,7 +196,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0>
196196std::function<TResult(T0)>* CallbackSlot<TTraits, NIndex, TResult(T0)>::ms_pFunction = nullptr ;
197197
198198template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1>
199- class CallbackSlot <TTraits, NIndex, TResult(T0, T1)>
199+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1)> final
200200{
201201 PROHIBIT_CONSTRUCT (CallbackSlot)
202202
@@ -258,7 +258,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
258258std::function<TResult(T0, T1)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1)>::ms_pFunction = nullptr ;
259259
260260template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2>
261- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2)>
261+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2)> final
262262{
263263 PROHIBIT_CONSTRUCT (CallbackSlot)
264264
@@ -320,7 +320,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
320320std::function<TResult(T0, T1, T2)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2)>::ms_pFunction = nullptr ;
321321
322322template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3>
323- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3)>
323+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3)> final
324324{
325325 PROHIBIT_CONSTRUCT (CallbackSlot)
326326
@@ -382,7 +382,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
382382std::function<TResult(T0, T1, T2, T3)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3)>::ms_pFunction = nullptr ;
383383
384384template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4>
385- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4)>
385+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4)> final
386386{
387387 PROHIBIT_CONSTRUCT (CallbackSlot)
388388
@@ -444,7 +444,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
444444std::function<TResult(T0, T1, T2, T3, T4)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4)>::ms_pFunction = nullptr ;
445445
446446template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
447- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5)>
447+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5)> final
448448{
449449 PROHIBIT_CONSTRUCT (CallbackSlot)
450450
@@ -506,7 +506,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
506506std::function<TResult(T0, T1, T2, T3, T4, T5)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5)>::ms_pFunction = nullptr ;
507507
508508template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
509- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6)>
509+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6)> final
510510{
511511 PROHIBIT_CONSTRUCT (CallbackSlot)
512512
@@ -568,7 +568,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
568568std::function<TResult(T0, T1, T2, T3, T4, T5, T6)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6)>::ms_pFunction = nullptr ;
569569
570570template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
571- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7)>
571+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7)> final
572572{
573573 PROHIBIT_CONSTRUCT (CallbackSlot)
574574
@@ -630,7 +630,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
630630std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7)>::ms_pFunction = nullptr ;
631631
632632template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
633- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8)>
633+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8)> final
634634{
635635 PROHIBIT_CONSTRUCT (CallbackSlot)
636636
@@ -692,7 +692,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
692692std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8)>::ms_pFunction = nullptr ;
693693
694694template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
695- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>
695+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> final
696696{
697697 PROHIBIT_CONSTRUCT (CallbackSlot)
698698
@@ -754,7 +754,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
754754std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>::ms_pFunction = nullptr ;
755755
756756template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
757- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
757+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> final
758758{
759759 PROHIBIT_CONSTRUCT (CallbackSlot)
760760
@@ -816,7 +816,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
816816std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>::ms_pFunction = nullptr ;
817817
818818template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
819- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>
819+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> final
820820{
821821 PROHIBIT_CONSTRUCT (CallbackSlot)
822822
@@ -878,7 +878,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
878878std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>::ms_pFunction = nullptr ;
879879
880880template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
881- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>
881+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> final
882882{
883883 PROHIBIT_CONSTRUCT (CallbackSlot)
884884
@@ -940,7 +940,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
940940std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>::ms_pFunction = nullptr ;
941941
942942template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
943- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>
943+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> final
944944{
945945 PROHIBIT_CONSTRUCT (CallbackSlot)
946946
@@ -1002,7 +1002,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
10021002std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>::ms_pFunction = nullptr ;
10031003
10041004template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
1005- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>
1005+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> final
10061006{
10071007 PROHIBIT_CONSTRUCT (CallbackSlot)
10081008
@@ -1064,7 +1064,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
10641064std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>::ms_pFunction = nullptr ;
10651065
10661066template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
1067- class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>
1067+ class CallbackSlot <TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> final
10681068{
10691069 PROHIBIT_CONSTRUCT (CallbackSlot)
10701070
@@ -1130,7 +1130,7 @@ std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
11301130// -----------------------------------------------------------------------------
11311131
11321132template <typename TTraits>
1133- class CallbackManager
1133+ class CallbackManager final
11341134{
11351135 PROHIBIT_CONSTRUCT (CallbackManager)
11361136
0 commit comments