我试图让我的程序在不使用boost
的情况下工作,但无法找到一些有用模式的替代方案。也就是说,在标准库中我找不到boost::optional
这样的模式。是否有一些boost::optional
(C++ 11或其他地方)的标准替代方案?boost :: C++标准库中的可选替代方案
回答
简短的回答:第
龙答:根据升压规范自己动手。文档非常详尽,代码并不复杂,但这仍然需要高于平均的C++技能。
要更新此答案:C++ 14不幸没有与std::optional
一起发货。目前的提案(修订版5)为N3793,预计将作为单独的技术规范发布或成为C++ 17的一部分。
当前有a proposal for C++14(或C++ 17)。所以答案是(可能)还没有:)。
显然,它刚刚被C++ 14投入技术规范(请参阅http://en.cppreference.com/w/cpp/utility/optional):( – Nova 2013-10-02 07:56:37
C++委员会发言中的“投票”实际上是不是意味着“投票”? – 2015-07-30 15:57:32
像pmr explained,现在是不可能的,并且直到C++ 17出现为止。
但是,你应该能够在github上使用这个single header library作为替代boost或std可选的下降。它没有依赖关系(除了支持C++ 11/C++ 14的编译器)。
- 1. C++标准容器提升ptr_array的替代方案
- 2. Boost 1.41.0:boost :: locale的替代方案?
- 3. 标准API的更多可用替代方案API
- 4. 什么是C++方案的标记数据的替代方案
- 5. C++标准库是否可以替换?
- 6. 在休眠标准api中实现联合的替代方案
- 7. C++库替换标准cstdio
- 8. C#替代标准Treeview?
- 9. C/C++的多数据库库有哪些替代方案?
- 10. C++中的BufferedImage的替代方案
- 11. C#ReadProcessMemory替代方案
- 12. C++ 11 sscanf替代方案
- 13. JSF中JSTL标签的替代方案
- 14. pre-C++的std :: bind替代方案11
- 15. C++中的NSSortDescriptor替代方案
- 16. 在Asp.net中Forloop的替代方案c#
- 17. C++中的扭曲替代方案
- 18. C++中mktime的替代方案
- 19. 在asp.net c中的LifeRay替代方案#
- 20. c中的gethostbyname()替代方案
- 21. 快照功能的替代方案,SQL Server标准
- 22. 什么是流星反标准化的替代方案?
- 23. 用Boost代替C++ 0x库功能
- 24. 可移植类库中的SortedSet <T>的替代方案?
- 25. Elasticsearch.net v。2.3+库(c#)中多场映射的替代方案?
- 26. 数据库中可列表集合的设计替代方案
- 27. HTML中可以支持图像的选项标记的替代方案
- 28. Flash Builder 4标准分析和单元测试替代方案
- 29. 协议转换/标准化:Biztalk,替代方案?
- 30. 替代SecureString的一个.NET标准库?
C++ 0x == C++ 11,从问题中删除。 :) – Xeo 2012-01-15 15:10:51
您可以使用可空指针作为'boost :: optional'的廉价而不安全的替代方法。或者'std :: unique_ptr',其中值0(null_ptr,NULL)被解释为未初始化的可选类型。除了缺点,好处是你不需要实现任何东西;但请记住抽象。关于这一点的线索在boost手册中给出http://www.boost.org/doc/libs/1_53_0/libs/optional/doc/html/boost_optional/development.html#boost_optional.development.the_interface“作为结果,你可以在某些情况下用T *替换可选的,但并不总是“ –
alfC
2013-05-10 08:43:44