Boost.Optional的用法

【Boost.Optional的用法】不使用boost::optional时的方法:

#include int aaa() { int i; std::cin >> i; return (i > 10) ? i : -1; }int main() { int i = aaa(); if (i != -1) std::cout << i << std::endl; else std::cout << "not valid input" << std::endl; }

$ g++ m.cpp && ./a.out 11 11 [lane@Docker foo]$ ./a.out 2 not valid input

使用boost::optional时的方法:
#include #include boost::optional aaa() { int i; std::cin >> i; return (i > 10) ? i : boost::optional{}; }int main() { boost::optional i = aaa(); if (i) std::cout << *i << std::endl; else std::cout << "not valid input" << std::endl; }

$ g++ m.cpp && ./a.out 11 11 [lane@Docker foo]$ ./a.out 2 not valid input

参考文章 https://theboostcpplibraries.com/boost.optional

    推荐阅读