Hi, I've finally discovered the is_convertible type trait (from tr1 or C++0x) which helps closing the implementation of wrap.
Here are the types that can currently be wrapped int size_t double bool std::string const char* const Rbyte Rcomplex Additionally, if the type T can be wrapped, then the following types can also be wrapped: std::vector<T> std::deque<T> std::list<T> std::set<T> std::multiset<T> std::map<std::string,T> std::multimap<std::string,T> std::tr1::unordered_set<T> std::tr1::unordered_map<std::string,T> std::tr1::unordered_multimap<std::string,T> Additionally, type Foo can be wrapped if it can be implicitely converted to SEXP, which we can identify at compile time with is_convertible. Note that you can compose in any way you want, so for example: std::vector< std::map<std::string,std::vector<int> > > will happily be wrapped into a list of named lists of integer vectors. There are examples of this in the unit test runit.wrap.R. The implementation of this is contained in the Rcpp/internal/wrap.h file. Romain -- Romain Francois Professional R Enthusiast +33(0) 6 28 91 30 30 http://romainfrancois.blog.free.fr |- http://tr.im/KfKn : Rcpp 0.7.2 |- http://tr.im/JOlc : External pointers with Rcpp `- http://tr.im/JFqa : R Journal, Volume 1/2, December 2009 _______________________________________________ Rcpp-devel mailing list [email protected] https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
