|
|
@@ -11,35 +11,4 @@ template <typename Reference> struct arrow_proxy {
|
|
|
};
|
|
|
|
|
|
template <typename R> arrow_proxy(R r) -> arrow_proxy<R>;
|
|
|
-
|
|
|
-template <typename Value> struct value_proxy {
|
|
|
- value_proxy operator=(Value && value) {
|
|
|
- this->value = std::move(value);
|
|
|
- return *this;
|
|
|
- }
|
|
|
-
|
|
|
- operator Value const &() const { return value; }
|
|
|
- Value const & get() const { return value; }
|
|
|
-
|
|
|
- Value value;
|
|
|
-};
|
|
|
-
|
|
|
-template <typename Value> struct value_proxy<Value &> {
|
|
|
- value_proxy operator=(Value & value) {
|
|
|
- this->value = &value;
|
|
|
- return *this;
|
|
|
- }
|
|
|
-
|
|
|
- operator Value &() const { return *value; }
|
|
|
- Value & get() const { return *value; }
|
|
|
-
|
|
|
- Value * value;
|
|
|
-};
|
|
|
-
|
|
|
-struct ignore_proxy {
|
|
|
- template <typename Value> decltype(auto) operator=(Value && value) {
|
|
|
- return std::forward<Value>(value);
|
|
|
- }
|
|
|
-};
|
|
|
-
|
|
|
}
|