淺談boost.variant的幾種訪問方式
前言
variant類型在C++14并沒有加入,在cppreference網(wǎng)站上可以看到該類型將會在C++17加入,若想在不支持C++17的編譯器上使用variant類型,我們可以通過boost的variant類型,variant類型可以表示任意一種類型和any類型有些相似,但還是有些區(qū)別,比如說variant支持的類型需提前定義,而any類型不需要,獲取any類型的值需要給出原始類型,然而variant類型支持多種方式訪問,其中一種就是通過訪問者模式來訪問,是不需要給出原始類型的,下面將淺談variant的幾種訪問方式(個人博客也發(fā)表了《淺談boost.variant的幾種訪問方式》)。
使用boost::get
boost::variant<int, std::string> v;
v = "Hello world"; std::cout << boost::get<st