草庐IT

Optional类

全部标签

c++ - boost::optional<T&> vs T*

我试图了解何时是使用boost附带的一些结构的合适时间,并且对boost::optional的使用有疑问有引用。假设我有以下类,使用boost::optional:classMyClass{public:MyClass(){}initialise(Helper&helper){this->helper=helper;}boost::optionalgetHelper(){returnhelper;}private:boost::optionalhelper;}我为什么要使用上面的而不是:classMyClass{public:MyClass():helper(nullptr){}ini

c++ - g++/libstdc++中std::optional的实现状态?

由于我正在开发一个将于2014年左右公开发布的C++库,因此我目前需要做出设计选择。将与C++14一起发布的非常有用的工具之一是std::optional。我想知道g++/libstdc++的版本我可以使用-std=c++1y。 最佳答案 更新(2016年10月):std::optional不在最终的C++14标准中,因此它永远不会与-std=c++1y一起使用.相反,GCC4.9包含std::experimental::optional可用-std=c++1y.GCC7将包括std::optional与-std=c++1z即C++

c++ - g++/libstdc++中std::optional的实现状态?

由于我正在开发一个将于2014年左右公开发布的C++库,因此我目前需要做出设计选择。将与C++14一起发布的非常有用的工具之一是std::optional。我想知道g++/libstdc++的版本我可以使用-std=c++1y。 最佳答案 更新(2016年10月):std::optional不在最终的C++14标准中,因此它永远不会与-std=c++1y一起使用.相反,GCC4.9包含std::experimental::optional可用-std=c++1y.GCC7将包括std::optional与-std=c++1z即C++

c++ - C++ 标准库中的 boost::optional 替代方案

我试图让我的程序在不使用boost的情况下运行,但找不到一些有用模式的替代方案。也就是说,我在标准库中找不到boost::optional类似的模式。boost::optional(C++11或其他地方)是否有一些标准替代方案? 最佳答案 简短回答:不。长答案:根据boost规范自行调整。文档非常详尽,代码也没有那么复杂,但这仍然需要高于平均水平的C++技能。要更新这个答案:很遗憾,C++14没有附带std::optional。当前提案(修订版5)为N3793预计将作为单独的技术规范发布或成为C++17的一部分。

c++ - C++ 标准库中的 boost::optional 替代方案

我试图让我的程序在不使用boost的情况下运行,但找不到一些有用模式的替代方案。也就是说,我在标准库中找不到boost::optional类似的模式。boost::optional(C++11或其他地方)是否有一些标准替代方案? 最佳答案 简短回答:不。长答案:根据boost规范自行调整。文档非常详尽,代码也没有那么复杂,但这仍然需要高于平均水平的C++技能。要更新这个答案:很遗憾,C++14没有附带std::optional。当前提案(修订版5)为N3793预计将作为单独的技术规范发布或成为C++17的一部分。

c++ - 引用类型的 std::optional 特化

为什么std::optional(目前libc++中的std::experimental::optional)没有针对引用类型的特化(与boost::optional相比)?我认为这将是非常有用的选择。在STL中是否有一些对象具有对可能已经存在的对象语义的引用? 最佳答案 当n3406(提案的第2修订版)进行了讨论,一些委员会成员对可选引用感到不舒服。在n3527(修订#3),作者决定将可选引用作为辅助提案,以增加获得可选值的机会,并将其放入C++14中。虽然由于其他各种原因optional并没有完全进入C++14,但委员会并未拒绝

c++ - 引用类型的 std::optional 特化

为什么std::optional(目前libc++中的std::experimental::optional)没有针对引用类型的特化(与boost::optional相比)?我认为这将是非常有用的选择。在STL中是否有一些对象具有对可能已经存在的对象语义的引用? 最佳答案 当n3406(提案的第2修订版)进行了讨论,一些委员会成员对可选引用感到不舒服。在n3527(修订#3),作者决定将可选引用作为辅助提案,以增加获得可选值的机会,并将其放入C++14中。虽然由于其他各种原因optional并没有完全进入C++14,但委员会并未拒绝

node.js - package-lock.json 文件,包含 "optional": true 的包

我的一个同事的PR包含一个package-lock.json更新,其中添加了"optional":true:"minimist":{"version":"0.0.8","bundled":true,-"dev":true+"dev":true,+"optional":true},"minipass":{即使在谷歌搜索之后,我也不确定这意味着什么。有人可以解释一下吗? 最佳答案 来自https://docs.npmjs.com/files/package-lock.json#optional:Iftruethenthisdepende

node.js - package-lock.json 文件,包含 "optional": true 的包

我的一个同事的PR包含一个package-lock.json更新,其中添加了"optional":true:"minimist":{"version":"0.0.8","bundled":true,-"dev":true+"dev":true,+"optional":true},"minipass":{即使在谷歌搜索之后,我也不确定这意味着什么。有人可以解释一下吗? 最佳答案 来自https://docs.npmjs.com/files/package-lock.json#optional:Iftruethenthisdepende

Python Argparse : Issue with optional arguments which are negative numbers

我在使用argparse时遇到了一个小问题。我有一个选项xlim这是一个情节的xrange。我希望能够传递像-2e-5这样的数字。但是这不起作用-argparse解释这是一个位置参数。如果我这样做-0.00002它可以工作:argparse将其读取为负数。-2e-3是否可以读取?代码如下,我将如何运行它的示例是:./blaa.py--xlim-2.e-31e4如果我执行以下操作,它会起作用:./blaa.py--xlim-0.0021e4代码:parser.add_argument('--xlim',nargs=2,help='Xaxislimits',action='store',t