aboutsummaryrefslogtreecommitdiffstats
path: root/util/generic/fwd.h
diff options
context:
space:
mode:
authorDevtools Arcadia <arcadia-devtools@yandex-team.ru>2022-02-07 18:08:42 +0300
committerDevtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net>2022-02-07 18:08:42 +0300
commit1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch)
treee26c9fed0de5d9873cce7e00bc214573dc2195b7 /util/generic/fwd.h
downloadydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'util/generic/fwd.h')
-rw-r--r--util/generic/fwd.h168
1 files changed, 168 insertions, 0 deletions
diff --git a/util/generic/fwd.h b/util/generic/fwd.h
new file mode 100644
index 0000000000..5cc2da40e5
--- /dev/null
+++ b/util/generic/fwd.h
@@ -0,0 +1,168 @@
+#pragma once
+
+#include <util/system/defaults.h>
+
+#include <stlfwd>
+
+template <typename TCharType, typename TTraits = std::char_traits<TCharType>>
+class TBasicString;
+
+using TString = TBasicString<char>;
+using TUtf16String = TBasicString<wchar16>;
+using TUtf32String = TBasicString<wchar32>;
+
+template <typename TCharType, typename TTraits = std::char_traits<TCharType>>
+class TBasicStringBuf;
+
+using TStringBuf = TBasicStringBuf<char>;
+using TWtringBuf = TBasicStringBuf<wchar16>;
+using TUtf32StringBuf = TBasicStringBuf<wchar32>;
+
+//misc
+class TBuffer;
+
+//functors
+template <class T = void>
+struct TLess;
+
+template <class T = void>
+struct TGreater;
+
+template <class T = void>
+struct TEqualTo;
+
+template <class T>
+struct THash;
+
+//intrusive containers
+struct TIntrusiveListDefaultTag;
+template <class T, class Tag = TIntrusiveListDefaultTag>
+class TIntrusiveList;
+
+template <class T, class D, class Tag = TIntrusiveListDefaultTag>
+class TIntrusiveListWithAutoDelete;
+
+template <class T, class Tag = TIntrusiveListDefaultTag>
+class TIntrusiveSList;
+
+template <class T, class C>
+class TAvlTree;
+
+template <class TValue, class TCmp>
+class TRbTree;
+
+//containers
+template <class T, class A = std::allocator<T>>
+class TVector;
+
+template <class T, class A = std::allocator<T>>
+class TDeque;
+
+template <class T, class S = TDeque<T>>
+class TQueue;
+
+template <class T, class S = TVector<T>, class C = TLess<T>>
+class TPriorityQueue;
+
+template <class Key, class T, class HashFcn = THash<Key>, class EqualKey = TEqualTo<Key>, class Alloc = std::allocator<Key>>
+class THashMap;
+
+template <class Key, class T, class HashFcn = THash<Key>, class EqualKey = TEqualTo<Key>, class Alloc = std::allocator<Key>>
+class THashMultiMap;
+
+template <class Value, class HashFcn = THash<Value>, class EqualKey = TEqualTo<Value>, class Alloc = std::allocator<Value>>
+class THashSet;
+
+template <class Value, class HashFcn = THash<Value>, class EqualKey = TEqualTo<Value>, class Alloc = std::allocator<Value>>
+class THashMultiSet;
+
+template <class T, class A = std::allocator<T>>
+class TList;
+
+template <class K, class V, class Less = TLess<K>, class A = std::allocator<K>>
+class TMap;
+
+template <class K, class V, class Less = TLess<K>, class A = std::allocator<K>>
+class TMultiMap;
+
+template <class K, class L = TLess<K>, class A = std::allocator<K>>
+class TSet;
+
+template <class K, class L = TLess<K>, class A = std::allocator<K>>
+class TMultiSet;
+
+template <class T, class S = TDeque<T>>
+class TStack;
+
+template <size_t BitCount, typename TChunkType = ui64>
+class TBitMap;
+
+//autopointers
+class TDelete;
+class TDeleteArray;
+class TFree;
+class TCopyNew;
+
+template <class T, class D = TDelete>
+class TAutoPtr;
+
+template <class T, class D = TDelete>
+class THolder;
+
+template <class T, class C, class D = TDelete>
+class TRefCounted;
+
+template <class T>
+class TDefaultIntrusivePtrOps;
+
+template <class T, class Ops>
+class TSimpleIntrusiveOps;
+
+template <class T, class Ops = TDefaultIntrusivePtrOps<T>>
+class TIntrusivePtr;
+
+template <class T, class Ops = TDefaultIntrusivePtrOps<T>>
+class TIntrusiveConstPtr;
+
+template <class T, class Ops = TDefaultIntrusivePtrOps<T>>
+using TSimpleIntrusivePtr = TIntrusivePtr<T, TSimpleIntrusiveOps<T, Ops>>;
+
+template <class T, class C, class D = TDelete>
+class TSharedPtr;
+
+template <class T, class C = TCopyNew, class D = TDelete>
+class TCopyPtr;
+
+template <class TPtr, class TCopy = TCopyNew>
+class TCowPtr;
+
+template <typename T>
+class TPtrArg;
+
+template <typename T>
+using TArrayHolder = THolder<T, TDeleteArray>;
+
+template <typename T>
+using TMallocHolder = THolder<T, TFree>;
+
+template <typename T>
+using TArrayPtr = TAutoPtr<T, TDeleteArray>;
+
+template <typename T>
+using TMallocPtr = TAutoPtr<T, TFree>;
+
+//maybe
+namespace NMaybe {
+ struct TPolicyUndefinedExcept;
+}
+
+template <class T, class Policy = ::NMaybe::TPolicyUndefinedExcept>
+class TMaybe;
+
+struct TGUID;
+
+template <class T>
+class TArrayRef;
+
+template <class T>
+using TConstArrayRef = TArrayRef<const T>;