xgboost
|
Implementation of Intrusive Ptr. More...
#include <atomic>
#include <cinttypes>
#include <functional>
#include <ostream>
Go to the source code of this file.
Classes | |
class | xgboost::IntrusivePtrCell |
Helper class for embedding reference counting into client objects. See https://www.boost.org/doc/libs/1_74_0/doc/html/atomic/usage_examples.html for discussions of memory order. More... | |
class | xgboost::IntrusivePtr< T > |
Implementation of Intrusive Pointer. A smart pointer that points to an object with an embedded reference counter. The underlying object must implement a friend function IntrusivePtrRefCount() that returns the ref counter (of type IntrusivePtrCell). The intrusive pointer is faster than std::shared_ptr<>: std::shared_ptr<> makes an extra memory allocation for the ref counter whereas the intrusive pointer does not. More... | |
struct | xgboost::IntrusivePtr< T >::Hash |
struct | std::hash< xgboost::IntrusivePtr< T > > |
Namespaces | |
xgboost | |
namespace of xgboost | |
std | |
Functions | |
template<typename T > | |
IntrusivePtrCell & | xgboost::IntrusivePtrRefCount (T const *ptr) noexcept |
User defined function for returning embedded reference count. More... | |
template<class T , class U > | |
bool | xgboost::operator== (IntrusivePtr< T > const &x, IntrusivePtr< U > const &y) noexcept |
template<class T , class U > | |
bool | xgboost::operator!= (IntrusivePtr< T > const &x, IntrusivePtr< U > const &y) noexcept |
template<class T , class U > | |
bool | xgboost::operator== (IntrusivePtr< T > const &x, U *y) noexcept |
template<class T , class U > | |
bool | xgboost::operator!= (IntrusivePtr< T > const &x, U *y) noexcept |
template<class T , class U > | |
bool | xgboost::operator== (T *x, IntrusivePtr< U > const &y) noexcept |
template<class T , class U > | |
bool | xgboost::operator!= (T *x, IntrusivePtr< U > const &y) noexcept |
template<class T > | |
bool | xgboost::operator< (IntrusivePtr< T > const &x, IntrusivePtr< T > const &y) noexcept |
template<class T > | |
bool | xgboost::operator<= (IntrusivePtr< T > const &x, IntrusivePtr< T > const &y) noexcept |
template<class T > | |
bool | xgboost::operator> (IntrusivePtr< T > const &x, IntrusivePtr< T > const &y) noexcept |
template<class T > | |
bool | xgboost::operator>= (IntrusivePtr< T > const &x, IntrusivePtr< T > const &y) noexcept |
template<class E , class T , class Y > | |
std::basic_ostream< E, T > & | xgboost::operator<< (std::basic_ostream< E, T > &os, IntrusivePtr< Y > const &p) |
template<class T > | |
void | std::swap (xgboost::IntrusivePtr< T > &x, xgboost::IntrusivePtr< T > &y) noexcept |
Implementation of Intrusive Ptr.
Copyright (c) by Contributors 2020