Boost.Optional的用法
程序员文章站
2022-03-04 11:35:59
...
不使用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
[[email protected] 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
[[email protected] foo]$ ./a.out
2
not valid input
参考文章
下一篇: Java8 Optional用法