美文网首页
Boost.Optional的用法

Boost.Optional的用法

作者: louyang | 来源:发表于2018-08-17 16:08 被阅读703次

不使用boost::optional时的方法:

#include <iostream>

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 <boost/optional.hpp>
#include <iostream>

boost::optional<int> aaa()
{
    int i;
    std::cin >> i;
    return (i > 10) ? i : boost::optional<int>{};
}

int main()
{
   boost::optional<int> 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

相关文章

网友评论

      本文标题:Boost.Optional的用法

      本文链接:https://www.haomeiwen.com/subject/vlctiftx.html