August 2017
Intermediate to advanced
438 pages
14h 19m
English
Those readers who use C++11, already know about the move-only classes (like std::unique_ptr or std::thread). Using such an approach, we can make a move-only descriptor_owner class:
class descriptor_owner1 { void* descriptor_;public: descriptor_owner1() : descriptor_(nullptr) {} explicit descriptor_owner1(const char* param); descriptor_owner1(descriptor_owner1&& param) : descriptor_(param.descriptor_) { param.descriptor_ = nullptr; } descriptor_owner1& operator=(descriptor_owner1&& param) { descriptor_owner1 tmp(std::move(param)); std::swap(descriptor_, tmp.descriptor_); return *this; } void clear() { free(descriptor_); descriptor_ = nullptr; } bool empty() const { return !descriptor_; } ~descriptor_owner1() { clear(); }}; ...Read now
Unlock full access