aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/memory/leaky_ref_counted_singleton.h
blob: d77c3c982947c542d37d71b66d028fcac2709b0f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once

#include "intrusive_ptr.h"

namespace NYT {

////////////////////////////////////////////////////////////////////////////////

#define DECLARE_LEAKY_REF_COUNTED_SINGLETON_FRIEND()    \
    template <class T>                                  \
    friend struct ::NYT::TRefCountedWrapper;

template <class T, class... TArgs>
TIntrusivePtr<T> LeakyRefCountedSingleton(TArgs&&... args);

////////////////////////////////////////////////////////////////////////////////

} // namespace NYT

#define LEAKY_REF_COUNTED_SINGLETON_INL_H_
#include "leaky_ref_counted_singleton-inl.h"
#undef LEAKY_REF_COUNTED_SINGLETON_INL_H_