@@ -65,8 +65,6 @@ namespace classdesc
65
65
// / @}
66
66
// / true if this is an object, not a function
67
67
virtual bool isObject () const {return false ;}
68
- // / if this is a reference object, then convert this to a value object. Otherwise, return null
69
- virtual RPPtr toValue () const {return nullptr ;}
70
68
// / true if this is a const object, a const member function or static/free function
71
69
virtual bool isConst () const {return false ;}
72
70
// / arity if this is a function, 0 otherwise
@@ -480,7 +478,6 @@ namespace classdesc
480
478
bool isObject () const override {return true ;}
481
479
const object* getConstClassdescObject () override {return getClassdescObjectImpl (obj);}
482
480
bool isConst () const override {return std::is_const<T>::value;}
483
- RPPtr toValue () const override {return toObjectValueImpl (*this );}
484
481
};
485
482
486
483
// / same as \a RESTProcessObject, but internally stores the object. T must be copy constructible or moveable
@@ -490,7 +487,6 @@ namespace classdesc
490
487
public:
491
488
template <class ... Args>
492
489
RESTProcessValueObject (Args&&... args): RESTProcessObject<T>(actual), actual(std::forward<Args>(args)...) {}
493
- RPPtr toValue () const override {return nullptr ;}
494
490
};
495
491
496
492
template <class T > inline
@@ -690,7 +686,6 @@ namespace classdesc
690
686
RESTProcess_t list () const override ;
691
687
std::string type () const override {return typeName<T>();}
692
688
REST_PROCESS_BUFFER asBuffer () const override {REST_PROCESS_BUFFER r; return r<<obj;}
693
- RPPtr toValue () const override ;
694
689
bool isObject () const override {return true ;}
695
690
RPPtr getElem (const REST_PROCESS_BUFFER& index) {
696
691
size_t idx; index>>idx;
@@ -716,7 +711,6 @@ namespace classdesc
716
711
public:
717
712
template <class ... Args>
718
713
RESTProcessValueSequence (Args&&... args): RESTProcessSequence<T>(actual), actual(std::forward<Args>(args)...) {}
719
- RPPtr toValue () const override {return nullptr ;}
720
714
};
721
715
722
716
template <class T > struct RESTProcessMultiArray : public RESTProcessBase
@@ -771,14 +765,10 @@ namespace classdesc
771
765
return std::make_shared<RESTProcessObject<T>>(v);
772
766
}
773
767
size_t size () const override {return actual.size ();}
774
- RPPtr toValue () const override {return nullptr ;}
775
768
};
776
769
777
770
778
771
779
- template <class T > RPPtr RESTProcessSequence<T>::toValue() const
780
- {return std::make_shared<RESTProcessValueSequence<T>>(obj);}
781
-
782
772
template <class T >
783
773
typename enable_if<
784
774
And<
@@ -933,7 +923,6 @@ namespace classdesc
933
923
RESTProcess_t list () const override ;
934
924
std::string type () const override {return typeName<T>();}
935
925
REST_PROCESS_BUFFER asBuffer () const override {REST_PROCESS_BUFFER r; return r<<obj;}
936
- RPPtr toValue () const override ;
937
926
bool isObject () const override {return true ;}
938
927
RPPtr getElem (const REST_PROCESS_BUFFER& index) {
939
928
typename T::key_type idx; index>>idx;
@@ -967,12 +956,8 @@ namespace classdesc
967
956
template <class ... Args>
968
957
RESTProcessValueAssociativeContainer (Args&&... args):
969
958
RESTProcessAssociativeContainer<T>(actual), actual(std::forward<Args>(args)...) {}
970
- RPPtr toValue () const override {return nullptr ;}
971
959
};
972
960
973
- template <class T > RPPtr RESTProcessAssociativeContainer<T>::toValue() const
974
- {return std::make_shared<RESTProcessValueAssociativeContainer<T>>(obj);}
975
-
976
961
template <class T >
977
962
typename enable_if<is_associative_container<T>, void >::T
978
963
RESTProcessp (RESTProcess_t& repo, const string& d, T& a)
@@ -1137,9 +1122,7 @@ namespace classdesc
1137
1122
return makeRESTProcessValueObject (std::move (r));
1138
1123
RESTProcess_t map;
1139
1124
RESTProcess (map," " ,r);
1140
- auto rp=map.process (remainder, arguments);
1141
- if (auto v=rp->toValue ()) return v; // create a copy of the return value
1142
- return rp;
1125
+ return map.process (remainder, arguments);
1143
1126
}
1144
1127
1145
1128
template <class F >
0 commit comments