|
|
@ -148,7 +148,7 @@ struct swap_struct_t {
|
|
|
|
typedef swap_struct_t<T, F> swapped_t;
|
|
|
|
typedef swap_struct_t<T, F> swapped_t;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
protected:
|
|
|
|
T value;
|
|
|
|
T value = T();
|
|
|
|
|
|
|
|
|
|
|
|
static T swap(T v) {
|
|
|
|
static T swap(T v) {
|
|
|
|
return F::swap(v);
|
|
|
|
return F::swap(v);
|
|
|
@ -158,7 +158,7 @@ public:
|
|
|
|
return swap(value);
|
|
|
|
return swap(value);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
swap_struct_t() : value((T)0) {}
|
|
|
|
swap_struct_t() = default;
|
|
|
|
swap_struct_t(const T &v): value(swap(v)) {}
|
|
|
|
swap_struct_t(const T &v): value(swap(v)) {}
|
|
|
|
|
|
|
|
|
|
|
|
template <typename S>
|
|
|
|
template <typename S>
|
|
|
|