src/basics.h

changeset 213
ee5758ddb6d2
parent 212
27259810da6d
child 214
8e1fe64ce4e3
equal deleted inserted replaced
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>>;

mercurial