| 305 | |
| 306 | template <template <typename...> class Map, typename Value, typename Allocator, typename... Args> |
| 307 | auto OrderedSetWrapper<Map, Value, Allocator, Args...>::takeFirst() -> value_type { |
| 308 | if (empty()) |
| 309 | throw SetException("OrderedSet::takeFirst() called on empty OrderedSet"); |
| 310 | |
| 311 | auto i = m_order.begin(); |
| 312 | m_map.erase(*i); |
| 313 | value_type v = *i; |
| 314 | m_order.erase(i); |
| 315 | return v; |
| 316 | } |
| 317 | |
| 318 | template <template <typename...> class Map, typename Value, typename Allocator, typename... Args> |
| 319 | auto OrderedSetWrapper<Map, Value, Allocator, Args...>::takeLast() -> value_type { |