12 #if _MSC_VER < 1400 // MSVC++ 8.0 2005
13 #define LOCKFREEQUEUE_UNSUPPORTED
17 #ifndef LOCKFREEQUEUE_UNSUPPORTED
21 #ifdef DtUSE_UTILITIES_NAMESPACE
22 namespace DtUSE_UTILITIES_NAMESPACE
36 bool _push(
void*
const & t);
38 size_t _pop(
void* & ret);
45 size_t _read_available()
const;
50 size_t _write_available()
const;
72 inline size_t size()
const
77 inline bool push(T
const & t)
79 return _push(reinterpret_cast<void*>(t));
82 inline size_t pop(T & ret)
84 return _pop(reinterpret_cast<void* &>(ret));
87 inline bool empty(
void)
95 inline size_t readAvailableForConsumption()
const
97 return _read_available();
103 inline size_t writeAvailableForProduction()
const
105 return _write_available();
111 inline size_t writtenAvailableForConsumption()
const
113 return size() - writeAvailableForProduction();
118 #ifdef DtUSE_UTILITIES_NAMESPACE