August 2017
Intermediate to advanced
438 pages
14h 19m
English
Here is an example of how the move assignment can be used:
int main() { person_info vasya; vasya.name_ = "Vasya"; vasya.second_name_ = "Snow"; person_info new_vasya(boost::move(vasya)); assert(new_vasya.name_ == "Vasya"); assert(new_vasya.second_name_ == "Snow"); assert(vasya.name_.empty()); assert(vasya.second_name_.empty()); vasya = boost::move(new_vasya); assert(vasya.name_ == "Vasya"); assert(vasya.second_name_ == "Snow"); assert(new_vasya.name_.empty()); assert(new_vasya.second_name_.empty()); }
The Boost.Move library is implemented in a very efficient way. When the C++11 compiler is used, all the macros for rvalues emulation are expanded to C++11-specific features otherwise (on C++03 compilers), rvalues are ...
Read now
Unlock full access