Index: libs/move/example/doc_file_descriptor.cpp =================================================================== --- libs/move/example/doc_file_descriptor.cpp (révision 82664) +++ libs/move/example/doc_file_descriptor.cpp (copie de travail) @@ -33,20 +33,20 @@ BOOST_MOVABLE_BUT_NOT_COPYABLE(file_descriptor) public: - explicit file_descriptor(const char *filename = 0) //Constructor + explicit file_descriptor(const char *filename = 0) // Constructor : os_descr_(filename ? operating_system_open_file(filename) : 0) - { if(!os_descr_) throw std::runtime_error("file not found"); } + { if(empty()) throw std::runtime_error("file not found"); } - ~file_descriptor() //Destructor - { if(!os_descr_) operating_system_close_file(os_descr_); } + ~file_descriptor() // Destructor + { if(!empty()) operating_system_close_file(os_descr_); } file_descriptor(BOOST_RV_REF(file_descriptor) x) // Move ctor : os_descr_(x.os_descr_) - { x.os_descr_ = 0; } + { x.os_descr_ = 0; } file_descriptor& operator=(BOOST_RV_REF(file_descriptor) x) // Move assign { - if(!os_descr_) operating_system_close_file(os_descr_); + if(!empty()) operating_system_close_file(os_descr_); os_descr_ = x.os_descr_; x.os_descr_ = 0; return *this; @@ -61,29 +61,29 @@ #include #include -//Remember: 'file_descriptor' is NOT copyable, but it -//can be returned from functions thanks to move semantics +// Remember: 'file_descriptor' is NOT copyable, but it +// can be returned from functions thanks to move semantics file_descriptor create_file_descriptor(const char *filename) { return file_descriptor(filename); } int main() { - //Open a file obtaining its descriptor, the temporary - //returned from 'create_file_descriptor' is moved to 'fd'. + // Open a file obtaining its descriptor, the temporary + // returned from 'create_file_descriptor' is moved to 'fd'. file_descriptor fd = create_file_descriptor("filename"); assert(!fd.empty()); - //Now move fd into a vector + // Now move fd into a vector. boost::container::vector v; v.push_back(boost::move(fd)); - //Check ownership has been transferred + // Check ownership has been transferred. assert(fd.empty()); assert(!v[0].empty()); - //Compilation error if uncommented since file_descriptor is not copyable - //and vector copy construction requires value_type's copy constructor: - //boost::container::vector v2(v); + // Compilation error if uncommented since file_descriptor is not copyable + // and vector copy construction requires value_type's copy constructor: + // boost::container::vector v2(v); return 0; } //]