बूस्ट के साथ मैं यथा-स्थान के साथ एक वैकल्पिक बना सकते हैं: std :: experimental :: वैकल्पिक कैसे अक्षम करें?
boost::optional<boost::asio::io_service::work> work = boost::in_place(boost::ref(io_service));
और साथ यह छुड़ाना:
work = boost::none;
/प्रयोगात्मक समर्थन के साथ सी ++ 14, मैं बजाय में एक वैकल्पिक निर्माण कर सकते हैं साथ -Place:
std::experimental::optional<boost::asio::io_service::work> work;
work.emplace(boost::asio::io_service::work(io_service));
लेकिन यह कैसे छुड़ाना करने के लिए एक नुकसान में रहा हूँ ...
किसी भी मामले में आप 'nullopt_t' प्रकार की वस्तु का निर्माण कर सकते हैं, केवल' ish) तरीका 'nullopt'' की प्रतिलिपि बनाकर है। –
@ ल्यूकडेंटन ... या 'nullopt_t' प्रकार की ऑब्जेक्ट की प्रतिलिपि बनाना जिसे' nullopt' की प्रतिलिपि बनाकर प्रारंभ किया गया था। – Columbo
और इसलिए, आखिरकार, यह सब 'nullopt' पर आता है। –