Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7ef640a

Browse files
authored
Merge pull request#1014 from romainfrancois/Function_operator
safer Function<>::operator(), Rcpp_list*(), Rcpp_lang*()
2 parentsa8eb829 +3af5556 commit7ef640a

File tree

3 files changed

+153
-194
lines changed

3 files changed

+153
-194
lines changed

‎inst/include/Rcpp/Function.h‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,14 @@ namespace Rcpp{
111111
Shield<SEXP>x(Rf_findFun( nameSym, env ) ) ;
112112
Storage::set__(x) ;
113113
}
114+
115+
SEXPinvoke(SEXP args_, SEXP env)const {
116+
Shield<SEXP>args(args_);
117+
Shield<SEXP>call(Rcpp_lcons(Storage::get__(), args));
118+
SEXP out =Rcpp_fast_eval(call, env);
119+
return out;
120+
}
121+
114122
};
115123

116124
typedef Function_Impl<PreserveStorage> Function ;

‎inst/include/Rcpp/generated/Function__operator.h‎

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -26,108 +26,108 @@
2626
2727
template <TYPENAMES>
2828
SEXP operator()(ARGUMENTS){
29-
returnRcpp_fast_eval(Rf_lang2(Storage::get__(),pairlist(PARAMETERS)), R_GlobalEnv);
29+
returninvoke(pairlist(PARAMETERS), R_GlobalEnv);
3030
}
3131
3232
*/
3333
template<typename T1>
3434
SEXPoperator()(const T1& t1)const {
35-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1)), R_GlobalEnv);
35+
returninvoke(pairlist(t1), R_GlobalEnv);
3636
}
3737

3838
template<typename T1,typename T2>
3939
SEXPoperator()(const T1& t1,const T2& t2)const {
40-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2)), R_GlobalEnv);
40+
returninvoke(pairlist(t1, t2), R_GlobalEnv);
4141
}
4242

4343
template<typename T1,typename T2,typename T3>
4444
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3)const {
45-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3)), R_GlobalEnv);
45+
returninvoke(pairlist(t1, t2, t3), R_GlobalEnv);
4646
}
4747

4848
template<typename T1,typename T2,typename T3,typename T4>
4949
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4)const {
50-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4)), R_GlobalEnv);
50+
returninvoke(pairlist(t1, t2, t3, t4), R_GlobalEnv);
5151
}
5252

5353
template<typename T1,typename T2,typename T3,typename T4,typename T5>
5454
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5)const {
55-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5)), R_GlobalEnv);
55+
returninvoke(pairlist(t1, t2, t3, t4, t5), R_GlobalEnv);
5656
}
5757

5858
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6>
5959
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6)const {
60-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6)), R_GlobalEnv);
60+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6), R_GlobalEnv);
6161
}
6262

6363
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7>
6464
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7)const {
65-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7)), R_GlobalEnv);
65+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7), R_GlobalEnv);
6666
}
6767

6868
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8>
6969
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8)const {
70-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8)), R_GlobalEnv);
70+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8), R_GlobalEnv);
7171
}
7272

7373
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9>
7474
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8,const T9& t9)const {
75-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9)), R_GlobalEnv);
75+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9), R_GlobalEnv);
7676
}
7777

7878
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10>
7979
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8,const T9& t9,const T10& t10)const {
80-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10)), R_GlobalEnv);
80+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10), R_GlobalEnv);
8181
}
8282

8383
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11>
8484
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8,const T9& t9,const T10& t10,const T11& t11)const {
85-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)), R_GlobalEnv);
85+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11), R_GlobalEnv);
8686
}
8787

8888
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12>
8989
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8,const T9& t9,const T10& t10,const T11& t11,const T12& t12)const {
90-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12)), R_GlobalEnv);
90+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12), R_GlobalEnv);
9191
}
9292

9393
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13>
9494
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8,const T9& t9,const T10& t10,const T11& t11,const T12& t12,const T13& t13)const {
95-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13)), R_GlobalEnv);
95+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13), R_GlobalEnv);
9696
}
9797

9898
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14>
9999
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8,const T9& t9,const T10& t10,const T11& t11,const T12& t12,const T13& t13,const T14& t14)const {
100-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14)), R_GlobalEnv);
100+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14), R_GlobalEnv);
101101
}
102102

103103
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15>
104104
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8,const T9& t9,const T10& t10,const T11& t11,const T12& t12,const T13& t13,const T14& t14,const T15& t15)const {
105-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15)), R_GlobalEnv);
105+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15), R_GlobalEnv);
106106
}
107107

108108
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16>
109109
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8,const T9& t9,const T10& t10,const T11& t11,const T12& t12,const T13& t13,const T14& t14,const T15& t15,const T16& t16)const {
110-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16)), R_GlobalEnv);
110+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16), R_GlobalEnv);
111111
}
112112

113113
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17>
114114
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8,const T9& t9,const T10& t10,const T11& t11,const T12& t12,const T13& t13,const T14& t14,const T15& t15,const T16& t16,const T17& t17)const {
115-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17)), R_GlobalEnv);
115+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17), R_GlobalEnv);
116116
}
117117

118118
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18>
119119
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8,const T9& t9,const T10& t10,const T11& t11,const T12& t12,const T13& t13,const T14& t14,const T15& t15,const T16& t16,const T17& t17,const T18& t18)const {
120-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18)), R_GlobalEnv);
120+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18), R_GlobalEnv);
121121
}
122122

123123
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19>
124124
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8,const T9& t9,const T10& t10,const T11& t11,const T12& t12,const T13& t13,const T14& t14,const T15& t15,const T16& t16,const T17& t17,const T18& t18,const T19& t19)const {
125-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19)), R_GlobalEnv);
125+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19), R_GlobalEnv);
126126
}
127127

128128
template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20>
129129
SEXPoperator()(const T1& t1,const T2& t2,const T3& t3,const T4& t4,const T5& t5,const T6& t6,const T7& t7,const T8& t8,const T9& t9,const T10& t10,const T11& t11,const T12& t12,const T13& t13,const T14& t14,const T15& t15,const T16& t16,const T17& t17,const T18& t18,const T19& t19,const T20& t20)const {
130-
returnRcpp_fast_eval(Rcpp_lcons(Storage::get__(),pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20)), R_GlobalEnv);
130+
returninvoke(pairlist(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20), R_GlobalEnv);
131131
}
132132

133133
/* </code-bloat>*/

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp