- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想更好地理解使用 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/
我正在尝试 C++17 optional 类型,并认为使用它的合适位置是一个尝试打开文件并可能返回打开文件的函数。我写的函数是这样的: std::optional openFile(std::stri
所有std::make_随着 Class template argument deduction 的引入,C++17 变得多余(除了 make_unique 和 make_shared )。 那么 s
(可能不是 C++14,可能是 Library TS)工具 make_optional被定义(in n3672)为: template constexpr optional::type> mak
This page说make_optional C++17 中的函数返回 constexpr optional .我认为(虽然我可能是错的)这需要 optional有一个 constexpr复制或移动
我想更好地理解使用 default 构造函数创建 boost::optional 对象的区别: boost::optional pasta = boost::optional(spaghetti) 或
我最初的想法一直是尽可能尝试使用 make-helper 函数(也是因为它们与 almost-always-auto 概念和 east-initialization 约定巧妙地对齐),同时尝试在可以避
我是一名优秀的程序员,十分优秀!