File tree Expand file tree Collapse file tree 2 files changed +28
-15
lines changed
Expand file tree Collapse file tree 2 files changed +28
-15
lines changed Original file line number Diff line number Diff line change @@ -125,7 +125,6 @@ namespace Rcpp {
125125 }
126126
127127 // Environment Binding
128-
129128 template <typename CLASS>
130129 template <typename T>
131130 typename BindingPolicy<CLASS>::Binding&
@@ -145,6 +144,28 @@ namespace Rcpp {
145144 BindingPolicy<CLASS>::const_Binding::operator T () const {
146145 return as<T>(get ());
147146 }
147+
148+ // Dotted pair proxies
149+ template <typename CLASS>
150+ template <typename T>
151+ typename DottedPairProxyPolicy<CLASS>::DottedPairProxy&
152+ DottedPairProxyPolicy<CLASS>::DottedPairProxy::operator =(const T& rhs) {
153+ set (wrap (rhs));
154+ return *this ;
155+ }
156+
157+ template <typename CLASS>
158+ template <typename T>
159+ DottedPairProxyPolicy<CLASS>::DottedPairProxy::operator T () const {
160+ return as<T>(get ());
161+ }
162+
163+ template <typename CLASS>
164+ template <typename T>
165+ DottedPairProxyPolicy<CLASS>::const_DottedPairProxy::operator T () const {
166+ return as<T>(get ());
167+ }
168+
148169}
149170
150171#endif
Original file line number Diff line number Diff line change @@ -33,26 +33,20 @@ class DottedPairProxyPolicy {
3333 node = x ;
3434 }
3535
36- DottedPairProxy& operator =(const DottedPairProxy& rhs){
36+ DottedPairProxy& operator =(const DottedPairProxy& rhs) {
3737 return set (rhs.get ());
3838 }
39- DottedPairProxy& operator =(SEXP rhs){
39+ DottedPairProxy& operator =(SEXP rhs) {
4040 return set (rhs) ;
4141 }
4242
4343 template <typename T>
44- DottedPairProxy& operator =(const T& rhs) {
45- return set ( wrap (rhs) );
46- }
44+ DottedPairProxy& operator =(const T& rhs);
4745
4846 template <typename T>
49- DottedPairProxy& operator =(const traits::named_object<T>& rhs) {
50- return set ( wrap (rhs.object ), rhs.name ) ;
51- }
47+ DottedPairProxy& operator =(const traits::named_object<T>& rhs);
5248
53- template <typename T> operator T () const {
54- return as<T>( get () );
55- }
49+ template <typename T> operator T () const ;
5650
5751 inline SEXP get () const {
5852 return CAR (node);
@@ -84,9 +78,7 @@ class DottedPairProxyPolicy {
8478 node = x ;
8579 }
8680
87- template <typename T> operator T () const {
88- return as<T>( get () );
89- }
81+ template <typename T> operator T () const ;
9082
9183 inline SEXP get () const {
9284 return CAR (node);
You can’t perform that action at this time.
0 commit comments