boost::get — 从给定的 variant
中检索指定类型的值。
// In header: <boost/variant/get.hpp> template<typename U, typename T1, typename T2, ..., typename TN> U * get(variant<T1, T2, ..., TN> * operand); template<typename U, typename T1, typename T2, ..., typename TN> const U * get(const variant<T1, T2, ..., TN> * operand); template<typename U, typename T1, typename T2, ..., typename TN> U & get(variant<T1, T2, ..., TN> & operand); template<typename U, typename T1, typename T2, ..., typename TN> const U & get(const variant<T1, T2, ..., TN> & operand); template<typename U, typename T1, typename T2, ..., typename TN> U && get(variant<T1, T2, ..., TN> && operand);
如果未定义 BOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT
,则等效于 strict_get
。如果定义了 BOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT
,则等效于 relaxed_get
。
建议:在不定义 BOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT
的新代码中使用 get
。 这样,get
提供了更多的编译时检查,并且其行为更接近于 C++ 标准库中的 std::get
。