Hello,

Some time ago, I commited some code bloat so that we are less dependent 
on variadic templates for :
- creating Pairlist objects
- creating Language objects
- calling Function

So for example instead of the catch all so cool variadic template ;

template<typename... Args>
        SEXP operator()( const Args&... args) /* throw(Evaluator::eval_error) 
*/ {
                return internal::try_catch( Rf_lcons( m_sexp, pairlist(args...) 
) ) ;
        }

I've added a bunch of methods like this :

template <typename T1>
SEXP operator()( const T1& t1){
        return internal::try_catch( Rf_lcons( m_sexp, pairlist(t1) ) ) ;
}
template <typename T1, typename T2>
SEXP operator()( const T1& t1, const T2& t2){
        return internal::try_catch( Rf_lcons( m_sexp, pairlist(t1,t2) ) ) ;
}
...
template <typename T1, typename T2, typename T3, typename T4, typename T5>
SEXP operator()( const T1& t1, const T2& t2, const T3& t3, const T4& t4, 
const T5& t5){
                return internal::try_catch( Rf_lcons( m_sexp, 
pairlist(t1,t2,t3,t4,t5) 
) ) ;
}
/* </code-bloat> */


The question is : is 5 enough ? should it be 10 ? 20 ?
Those are templates so they are only instanciated when requested, so I 
don't have an issue about having an higher number.

Romain

-- 
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://tr.im/NrTG : Rcpp 0.7.5
|- http://tr.im/MPYc : RProtoBuf: protocol buffers for R
`- http://tr.im/KfKn : Rcpp 0.7.2

_______________________________________________
Rcpp-devel mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to