我打算使用異構數據的3D矢量。我找到了使用boost::variant
或boost.any
的解決方案。但是,我找不到任何簡單的教程。我應該包括哪些圖書館?任何人都可以給我簡單的教程或例子嗎?如何正確使用boost :: variant?
0
A
回答
1
boost網站上絕對有一個相對簡單的教程/參考( boost variant和boost any)。
至於你應該包括的圖書館:這當然會提升。具體來說,你需要的頭文件是boost/variant.hpp
和boost/any.hpp
。這兩個庫都是僅標頭庫。這意味着你應該只安裝boost(如果你還沒有)。
5
Boost.Variant和Boost.Any有不同的用例。
Boost.Variant約爲總和類型:你的類型,代表不同類型之一的聯合,還有許多:
- 要求:知道所有可能的類型
- 優勢的名單:您可以查詢到知道當前哪種類型處於活動狀態,並在編譯時檢查所有操作。
Boost.Any,另一方面,它是最好的類型刪除。它可以容納任何類型,甚至內置類型,如int
。
- 要求:瞭解內舉行的類型做就可以了
- 優點任何操作:剛剛通過
boost::any
各地可以無視類型的代碼就可以容納
相關問題
- 1. boost :: variant用法
- 2. 其中Boost :: Variant和function_types:如何將函數放入Boost :: variant?
- 3. Segfault with boost variant
- 4. boost :: variant implementation
- 5. boost :: variant存儲引用如何?
- 6. 你如何正確使用boost :: make_shared_ptr?
- 7. 如何正確使用boost :: timed_mutex和scoped_lock
- 8. 如何正確使用boost :: error_info?
- 9. boost :: variant和std :: find_if
- 10. 正確使用boost :: mpl :: contains和static_assert
- 11. 編譯錯誤使用boost :: variant
- 12. 如何加載序列化的boost :: variant?
- 13. 正確使用boost :: wait boost :: condition
- 14. 正確使用Boost :: ref ..?
- 15. 如何正確使用boost const_buffers矢量的boost async_write?
- 16. boost ::可選參考與boost :: variant類型
- 17. 組合boost :: exception和boost :: variant的問題
- 18. 遍歷boost :: variant類型
- 19. Boost :: Variant;定義訪問類
- 20. Google測試和boost :: variant
- 21. 命名union或boost :: variant typedefs
- 22. 存儲類在boost :: variant
- 23. 繼承boost :: variant和templatized AST
- 24. Boost :: variant與無序映射
- 25. boost :: variant作爲朋友類
- 26. 如何使用VARIANT * with dynamicCall?
- 27. 從boost :: variant獲得項目,就像std :: variant一樣可以使用
- 28. 正確使用boost locale生成器
- 29. 在列表中正確使用boost :: shared_ptr
- 30. 正確使用s/rand或Boost :: random
['升壓::任何示例'](http://www.boost.org/doc/libs/1_53_0/doc/html/any/s02.html)和['boost :: variant tutorial'](http://www.boost。組織/ DOC /庫/ 1_53_0/DOC/HTML /株/ tutorial.html)。 – soon