xvalue and std::move in D
Edwin van Leeuwen
bla at bla.bla
Thu Mar 6 03:21:55 PST 2014
I am trying to learn D and (partly) replace my C++ projects with
D. Lately in C++ I have become a fan of the type of functional
programming discussed here:
http://blog.knatten.org/2012/11/02/efficient-pure-functional-programming-in-c-using-move-semantics/
and was wondering if something similar is possible in D.
Basically the idea is to define functions as follows:
std::vector<double> add_to_vector( double x, std::vector<double>
&&v ) {
v.push_back(x);
return v;
}
and call it as follows:
std::vector<double> v;
v = add_to_vector( 1.2, std::move( v ) );
I know I could do the same by passing a reference value, but this
makes it explicit that I am changing v, while being as efficient
as passing a reference (since it just reuses the memory allocated
to v instead of making a copy).
Is this possible in D? I had a look through many tutorials and
some of the docs, but could not find out how to do it.
Any suggestions would be appreciated.
More information about the Digitalmars-d-learn
mailing list