On 5/2/2015 20:18, Dirk Eddelbuettel wrote:
On 2 May 2015 at 10:49, William Dunlap wrote:
| Since translation from R to Rcpp is "seamless" I will leave that to you.

One problem is with the strongly typed nature of C++.  Rearranging dynamicly
growing objects can be done.  I think I used Boost's variant type a few
years.  I am sure there are other possibilities.  We should collect a few and
compare.   But in C++ please :)
As for the other possibilities / alternatives to Boost.Variant -- the good news is that there a plenty! :-) The, um, related news is that the abundance means a maze of twisty little passages, not quite all alike ;-) There are speed / ease of use / flexibility / memory usage (and more -- e.g., involving floating-point accuracy) trade-offs. It doesn't seem like there's any "generally best" winner -- what's best is really use-case-specific.

"Dynamic C++" article series by Alex Fabijanic and Richard Saunders provides a good overview with comparisons:
Part 1: http://accu.org/index.php/journals/1855
Part 2: http://accu.org/index.php/journals/1841
// Focus: "In this article series, both externals and internals of boost::[variant, any, type_erasure], folly::dynamic, Poco::Dynamic::Var, Qt QVariant and adobe::any_regular are explored and compared. Design, capabilities, ease of use as well as pros and cons of each solution will be examined. Performance benchmark comparisons results will be provided as well. "

There's also a related presentation by Alex:
Slides: https://github.com/boostcon/cppnow_presentations_2013/blob/master/thu/DynamicCpp.pdf?raw=true
// Online slides: http://www.slideshare.net/aleks-f/dynamic-caccu2013
Video: https://www.youtube.com/watch?v=QySTK4cSq7o&list=PLAq3rthfTjp4O2YZ7K2Y6AzW_zx5DtUth
Code: https://github.com/aleks-f/articles/tree/master/ACCU-2013

ACCU 2014 presentation, "Dynamic C++ performance", includes more on speed comparisons (and also floating-point conversions, including their accuracy).
Code & slides: https://github.com/aleks-f/articles/tree/master/ACCU2014

Perhaps "Dynamic, Recursive, Heterogeneous Types in Statically-Typed Languages" by Richard Saunders, Clinton Jeffery may also be of interest, although it's only somewhat related to the problem (issue at hand: allow Python and C++ to share Python dictionaries across language boundaries).
Article: http://cppnow.org/files/2013/03/saunders-jeffery.pdf
Slides: https://github.com/boostcon/cppnow_presentations_2013/blob/master/fri/DynRec.pdf?raw=true
Video: https://www.youtube.com/watch?v=W3TsQtnMtqg

Best,

Matt

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

Reply via email to