1 #ifndef COMPRESSED_PAIR_H 2 #define COMPRESSED_PAIR_H 8 #include "ValueHolder.h" 19 template <
class ... Args>
26 const T& first()
const &
29 const T&& first()
const &&
46 template <
class T,
class U>
61 class = std::enable_if_t<std::is_same_v<std::decay_t<Left>, T>>,
62 class = std::enable_if_t<std::is_same_v<std::decay_t<Right>, U>>
70 using left_base::first;
72 const U& second()
const &
75 const U&& second()
const &&
85 noexcept(std::is_nothrow_swappable_v<T> and std::is_nothrow_swappable_v<U>)
88 swap(first(), other.first());
89 swap(second(), other.second());
93 template <
class T,
class U>
97 std::forward<T>(left), std::forward<U>(right)
101 template <
class T,
class U>
103 { left.swap(right); }
Primary classes and utility functions for AnySet.
Definition: SetOperations.h:21
Definition: CompressedPair.h:47
Definition: ValueHolder.h:76
Definition: CompressedPair.h:16