[Rcpp-devel] Is the order of initializations within a data type defined?
Douglas Bates
bates at stat.wisc.edu
Wed Mar 24 19:31:37 CET 2010
I find myself writing code like
Rcpp::NumericVector mu(arg);
Rcpp::NumericVector eta(mu.size());
...
because I need to ensure that mu is constructed from the argument SEXP
before its size can be used to construct eta. Is the order of
initializations compiler-dependent or defined by the standard? If
defined by the standard I could write
Rcpp::NumericVector mu(arg), eta(mu.size());
and expect it to work as intended. Does anyone know if I can count on
left-to-right ordering of initializations?
Yes, I realize that I could circumvent the problem of long class names
like Rcpp::NumericVector with typedefs and
using namespace Rcpp;
but I think it improves readability to use the names defined by Rcpp
and I haven't yet sorted out the ramifications of using namespaces,
especially multiple namespaces.
More information about the Rcpp-devel
mailing list