这篇文章介绍下C++17引入的std::optional
为什么要有 optional
一般来说,如果想要一个函数返回“多个”值,C++程序员倾向于使用结构体/类完成这个操作。即定义一个通用的结构体,在函数内部完成装填,然后返回一个实例化的结构体。
#include <iostream>
using namespace std;
struct Out {
string out1 {
"" };
string out2 {
"" };
};
pair<bool, Out> func(const string& in) {
Out o;
if (in.size() == 0)
return {
false, o };
o.out1 = "hello";
o.out2 = "world";
return

文章介绍了C++17引入的std::optional,它可管理可选的容纳值,常用于可能失败的函数返回值,相比其他手段能更好处理构造开销高昂的对象且更可读。还阐述了optional的使用方法,重点讲解了几种初始化情况及特殊场景下的使用要点。
&spm=1001.2101.3001.5002&articleId=135035061&d=1&t=3&u=39b2f22827b1499e8243c132eaafc5e2)
1727

被折叠的 条评论
为什么被折叠?



