#pragma once
#include <assert.h>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <memory>
#include <type_traits>
#include <utility>
#include <folly/Portability.h>
namespace folly {
class DelayedDestructionBase { … };
inline bool operator==(
const DelayedDestructionBase::DestructorGuard& left,
const DelayedDestructionBase::DestructorGuard& right) { … }
inline bool operator!=(
const DelayedDestructionBase::DestructorGuard& left,
const DelayedDestructionBase::DestructorGuard& right) { … }
inline bool operator==(
const DelayedDestructionBase::DestructorGuard& left, std::nullptr_t) { … }
inline bool operator==(
std::nullptr_t, const DelayedDestructionBase::DestructorGuard& right) { … }
inline bool operator!=(
const DelayedDestructionBase::DestructorGuard& left, std::nullptr_t) { … }
inline bool operator!=(
std::nullptr_t, const DelayedDestructionBase::DestructorGuard& right) { … }
template <typename LeftAliasType, typename RightAliasType>
inline bool operator==(
const DelayedDestructionBase::IntrusivePtr<LeftAliasType>& left,
const DelayedDestructionBase::IntrusivePtr<RightAliasType>& right) { … }
template <typename LeftAliasType, typename RightAliasType>
inline bool operator!=(
const DelayedDestructionBase::IntrusivePtr<LeftAliasType>& left,
const DelayedDestructionBase::IntrusivePtr<RightAliasType>& right) { … }
template <typename LeftAliasType>
inline bool operator==(
const DelayedDestructionBase::IntrusivePtr<LeftAliasType>& left,
std::nullptr_t) { … }
template <typename RightAliasType>
inline bool operator==(
std::nullptr_t,
const DelayedDestructionBase::IntrusivePtr<RightAliasType>& right) { … }
template <typename LeftAliasType>
inline bool operator!=(
const DelayedDestructionBase::IntrusivePtr<LeftAliasType>& left,
std::nullptr_t) { … }
template <typename RightAliasType>
inline bool operator!=(
std::nullptr_t,
const DelayedDestructionBase::IntrusivePtr<RightAliasType>& right) { … }
}