Remove std::chrono completely
[WebKit-https.git] / Source / WTF / wtf / Forward.h
1 /*
2  *  Copyright (C) 2006-2017 Apple Inc. All rights reserved.
3  *
4  *  This library is free software; you can redistribute it and/or
5  *  modify it under the terms of the GNU Library General Public
6  *  License as published by the Free Software Foundation; either
7  *  version 2 of the License, or (at your option) any later version.
8  *
9  *  This library is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  *  Library General Public License for more details.
13  *
14  *  You should have received a copy of the GNU Library General Public License
15  *  along with this library; see the file COPYING.LIB.  If not, write to
16  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  *  Boston, MA 02110-1301, USA.
18  *
19  */
20
21 #pragma once
22
23 #include <stddef.h>
24
25 namespace std {
26 template<typename T> class optional;
27 }
28
29 namespace WTF {
30
31 class AtomicString;
32 class AtomicStringImpl;
33 class BinarySemaphore;
34 class CString;
35 class CrashOnOverflow;
36 class FunctionDispatcher;
37 class Hasher;
38 class MonotonicTime;
39 class OrdinalNumber;
40 class PrintStream;
41 class SHA1;
42 class Seconds;
43 class String;
44 class StringBuilder;
45 class StringImpl;
46 class StringView;
47 class TextPosition;
48 class TextStream;
49 class WallTime;
50
51 struct FastMalloc;
52
53 template<typename> class CompletionHandler;
54 template<typename T> struct DumbPtrTraits;
55 template<typename> class Function;
56 template<typename> class LazyNeverDestroyed;
57 template<typename> class NeverDestroyed;
58 template<typename> class OptionSet;
59 template<typename T, typename = DumbPtrTraits<T>> class Ref;
60 template<typename T, typename = DumbPtrTraits<T>> class RefPtr;
61 template<typename> class StringBuffer;
62 template<typename, typename = void> class StringTypeAdapter;
63
64 template<typename> struct DefaultHash { using Hash = void; };
65 template<typename> struct HashTraits;
66
67 template<typename...> class Variant;
68 template<typename, size_t = 0, typename = CrashOnOverflow, size_t = 16, typename = FastMalloc> class Vector;
69 template<typename Value, typename = typename DefaultHash<Value>::Hash, typename = HashTraits<Value>> class HashCountedSet;
70 template<typename KeyArg, typename MappedArg, typename = typename DefaultHash<KeyArg>::Hash, typename = HashTraits<KeyArg>, typename = HashTraits<MappedArg>> class HashMap;
71 template<typename ValueArg, typename = typename DefaultHash<ValueArg>::Hash, typename = HashTraits<ValueArg>> class HashSet;
72
73 }
74
75 namespace std {
76 namespace experimental {
77 inline namespace fundamentals_v3 {
78 template<class, class> class expected;
79 template<class> class unexpected;
80 }}} // namespace std::experimental::fundamentals_v3
81
82 using WTF::AtomicString;
83 using WTF::AtomicStringImpl;
84 using WTF::BinarySemaphore;
85 using WTF::CString;
86 using WTF::CompletionHandler;
87 using WTF::Function;
88 using WTF::FunctionDispatcher;
89 using WTF::HashCountedSet;
90 using WTF::HashMap;
91 using WTF::HashSet;
92 using WTF::Hasher;
93 using WTF::LazyNeverDestroyed;
94 using WTF::NeverDestroyed;
95 using WTF::OptionSet;
96 using WTF::OrdinalNumber;
97 using WTF::PrintStream;
98 using WTF::Ref;
99 using WTF::RefPtr;
100 using WTF::SHA1;
101 using WTF::String;
102 using WTF::StringBuffer;
103 using WTF::StringBuilder;
104 using WTF::StringImpl;
105 using WTF::StringView;
106 using WTF::TextPosition;
107 using WTF::TextStream;
108 using WTF::Variant;
109 using WTF::Vector;
110
111 template<class T, class E> using Expected = std::experimental::expected<T, E>;
112 template<class E> using Unexpected = std::experimental::unexpected<E>;