@@ -38,8 +38,10 @@ class SinkBase
38
38
39
39
virtual ~SinkBase () { }
40
40
41
- virtual operator T () = 0;
41
+ virtual T get () = 0;
42
42
virtual void inject (T const & value) = 0;
43
+
44
+ inline operator T () { return get (); }
43
45
};
44
46
45
47
template <typename T>
@@ -50,7 +52,7 @@ class SinkNonBlocking : public SinkBase<T>
50
52
SinkNonBlocking () { }
51
53
virtual ~SinkNonBlocking () { }
52
54
53
- virtual operator T () override ;
55
+ virtual T get () override ;
54
56
virtual void inject (T const & value) override ;
55
57
56
58
@@ -69,7 +71,7 @@ class SinkBlocking : public SinkBase<T>
69
71
SinkBlocking (size_t const size);
70
72
virtual ~SinkBlocking () { }
71
73
72
- virtual operator T () override ;
74
+ virtual T get () override ;
73
75
virtual void inject (T const & value) override ;
74
76
75
77
@@ -87,7 +89,7 @@ class SinkBlocking : public SinkBase<T>
87
89
**************************************************************************************/
88
90
89
91
template <typename T>
90
- SinkNonBlocking<T>::operator T ()
92
+ T SinkNonBlocking<T>::get ()
91
93
{
92
94
_mutex.lock ();
93
95
return _data;
@@ -114,7 +116,7 @@ SinkBlocking<T>::SinkBlocking(size_t const size)
114
116
{ }
115
117
116
118
template <typename T>
117
- SinkBlocking<T>::operator T ()
119
+ T SinkBlocking<T>::get ()
118
120
{
119
121
_mutex.lock ();
120
122
while (_data.isEmpty ())
0 commit comments