#pragma once
#include <atomic>
#include <folly/Function.h>
#include <folly/concurrency/memory/TLRefCount.h>
namespace folly {
template <typename T, typename RefCount>
class ReadMostlyMainPtr;
template <typename T, typename RefCount>
class ReadMostlyWeakPtr;
template <typename T, typename RefCount>
class ReadMostlySharedPtr;
template <typename RefCount>
class ReadMostlyMainPtrDeleter;
DefaultRefCount;
namespace detail {
template <typename RefCount = DefaultRefCount>
class ReadMostlySharedPtrCore { … };
}
template <typename T, typename RefCount = DefaultRefCount>
class ReadMostlyMainPtr { … };
template <typename T, typename RefCount = DefaultRefCount>
class ReadMostlyWeakPtr { … };
template <typename T, typename RefCount = DefaultRefCount>
class ReadMostlySharedPtr { … };
template <typename RefCount = DefaultRefCount>
class ReadMostlyMainPtrDeleter { … };
template <typename T, typename RefCount>
inline bool operator==(
const ReadMostlyMainPtr<T, RefCount>& ptr, std::nullptr_t) { … }
template <typename T, typename RefCount>
inline bool operator==(
std::nullptr_t, const ReadMostlyMainPtr<T, RefCount>& ptr) { … }
template <typename T, typename RefCount>
inline bool operator==(
const ReadMostlySharedPtr<T, RefCount>& ptr, std::nullptr_t) { … }
template <typename T, typename RefCount>
inline bool operator==(
std::nullptr_t, const ReadMostlySharedPtr<T, RefCount>& ptr) { … }
template <typename T, typename RefCount>
inline bool operator!=(
const ReadMostlyMainPtr<T, RefCount>& ptr, std::nullptr_t) { … }
template <typename T, typename RefCount>
inline bool operator!=(
std::nullptr_t, const ReadMostlyMainPtr<T, RefCount>& ptr) { … }
template <typename T, typename RefCount>
inline bool operator!=(
const ReadMostlySharedPtr<T, RefCount>& ptr, std::nullptr_t) { … }
template <typename T, typename RefCount>
inline bool operator!=(
std::nullptr_t, const ReadMostlySharedPtr<T, RefCount>& ptr) { … }
}