我試圖讓我的程序在不使用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#替代標準Treeview?
- 6. C/C++的多數據庫庫有哪些替代方案?
- 7. C++中的BufferedImage的替代方案
- 8. JSF中JSTL標籤的替代方案
- 9. 在asp.net c中的LifeRay替代方案#
- 10. C++中mktime的替代方案
- 11. C++中的扭曲替代方案
- 12. c中的gethostbyname()替代方案
- 13. 快照功能的替代方案,SQL Server標準
- 14. 用Boost代替C++ 0x庫功能
- 15. 可移植類庫中的SortedSet <T>的替代方案?
- 16. Elasticsearch.net v。2.3+庫(c#)中多場映射的替代方案?
- 17. 數據庫中可列表集合的設計替代方案
- 18. 協議轉換/標準化:Biztalk,替代方案?
- 19. wl-pprint-extras中的可選空間和多個替代方案
- 20. C++中的日期/時間庫有沒有輕量級的替代方案?
- 21. 在VC++中,boost :: shared_ptr有一個本地/可靠的替代方案嗎?
- 22. 嵌套接口的替代方案(在C#中不可能)
- 23. Python GD GD庫的替代方案
- 24. C#的Socket.IO和Express替代方案?
- 25. C++:模板的替代解決方案
- 26. JTextArea可能的替代方案?
- 27. C++標準庫中boost :: variant的等價物是什麼?
- 28. HTMLElementVariable.animate(...)替代方案?
- 29. Nginx:more_clear_headers替代方案
- 30. VSTO替代方案
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