3 #ifndef CDSLIB_CONTAINER_DETAILS_GUARDED_PTR_CAST_H
4 #define CDSLIB_CONTAINER_DETAILS_GUARDED_PTR_CAST_H
7 #include <cds/details/defs.h>
9 namespace cds { namespace container { namespace details {
11 template <typename Node, typename T>
12 struct guarded_ptr_cast_set {
13 T * operator()(Node* pNode ) const CDS_NOEXCEPT
15 return &(pNode->m_Value);
19 template <typename Node, typename T>
20 struct guarded_ptr_cast_map {
21 T * operator()(Node* pNode ) const CDS_NOEXCEPT
23 return &(pNode->m_Data);
27 }}} // namespace cds::container::details
30 #endif // #ifndef CDSLIB_CONTAINER_DETAILS_GUARDED_PTR_CAST_H