212:27259810da6d | 213:ee5758ddb6d2 |
---|---|
18 | 18 |
19 #pragma once | 19 #pragma once |
20 #include <algorithm> | 20 #include <algorithm> |
21 #include <cmath> | 21 #include <cmath> |
22 #include <compare> | 22 #include <compare> |
23 #include <deque> | |
23 #include <memory> | 24 #include <memory> |
24 #include <optional> | 25 #include <optional> |
25 #include <set> | 26 #include <set> |
26 #include <type_traits> | 27 #include <type_traits> |
27 #include <QDataStream> | 28 #include <QDataStream> |
182 | 183 |
183 template<typename T, typename IdentifierType> | 184 template<typename T, typename IdentifierType> |
184 struct TypeValue | 185 struct TypeValue |
185 { | 186 { |
186 T value; | 187 T value; |
187 auto operator<=>(TypeValue other) const = default; | 188 auto operator<=>(const TypeValue& other) const = default; |
188 }; | 189 }; |
189 | 190 |
190 template<typename T, typename R> | 191 template<typename T, typename R> |
191 int qHash(TypeValue<T, R> value) | 192 int qHash(TypeValue<T, R> value) |
192 { | 193 { |
321 value += separator; | 322 value += separator; |
322 } | 323 } |
323 value += element; | 324 value += element; |
324 return value; | 325 return value; |
325 } | 326 } |
327 | |
328 template<typename T> | |
329 struct GraphEdge | |
330 { | |
331 T from; | |
332 T to; | |
333 }; | |
334 | |
335 template<typename T> | |
336 using Graph = std::deque<GraphEdge<T>>; |