我想更好地理解使用 default 构造函数创建 boost::optional 对象的区别:
boost::optional<PastaType> pasta = boost::optional<PastaType>(spaghetti)
或使用make_optional 版本:
boost::optional<PastaType> pasta = boost::make_optional<PastaType>(spaghetti)
环顾四周,我只是了解到 make_optional 版本 PastaType 不能是引用类型,但我想弄清楚何时使用其中一个或另一个更好。
谢谢!
最佳答案
make_optional
是一个便利或辅助函数,可以通过推断 optional
的模板参数来减少您必须编写的代码量。这两种方法在功能上是等效的。
auto pasta = boost::make_optional(spaghetti);
关于c++ - boost::optional 与 boost::make_optional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66908075/