2013-06-22 100 views
0

我打算使用異構數據的3D矢量。我找到了使用boost::variantboost.any的解決方案。但是,我找不到任何簡單的教程。我應該包括哪些圖書館?任何人都可以給我簡單的教程或例子嗎?如何正確使用boost :: variant?

+6

['升壓::任何示例'](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

回答

1

boost網站上絕對有一個相對簡單的教程/參考( boost variantboost any)。

至於你應該包括的圖書館:這當然會提升。具體來說,你需要的頭文件是boost/variant.hppboost/any.hpp。這兩個庫都是僅標頭庫。這意味着你應該只安裝boost(如果你還沒有)。

5

Boost.Variant和Boost.Any有不同的用例。

Boost.Variant約爲總和類型:你的類型,代表不同類型之一的聯合,還有許多:

  • 要求:知道所有可能的類型
  • 優勢的名單:您可以查詢到知道當前哪種類型處於活動狀態,並在編譯時檢查所有操作。

Boost.Any,另一方面,它是最好的類型刪除。它可以容納任何類型,甚至內置類型,如int

  • 要求:瞭解內舉行的類型做就可以了
  • 優點任何操作:剛剛通過boost::any各地可以無視類型的代碼就可以容納