1. 程式人生 > >Boost中Datastruct模組的variant用法

Boost中Datastruct模組的variant用法

標頭檔案

boost/variant.hpp

作用

將基本資料型別及自定義類,以variant型別儲存,或者boost::get用於將variant轉成需要的型別,如果失敗,則丟擲bad_cast_exception;另外結合boost::static_visitor,可使用更加強大的功能。 

舉例

std::vector< boost::variant<int, std::string> > vec;
vec.push_back( 21 );
vec.push_back( "hello " );

times_two_generic visitor;
std::for_each(
      vec.begin(), vec.end()
   , boost::apply_visitor(visitor)
   );

原始碼

原始碼較複雜,省略。。。