http://www.boost.org/doc/libs/1_35_0/doc/html/boost/get_id405862.htmlboost :: getのパラメータ型を指定する必要があるのはなぜですか?
template<typename U, typename T1, typename T2, ..., typename TN>
U & get(variant<T1, T2, ..., TN> & operand);
機能は、コンテンツが指定されたタイプU
である場合にのみ成功します。
boost::get
はテンプレート関数ですか?
ほとんどの場合、テンプレート関数を呼び出すと、関数自体がパラメータ型を推測できるため、手動で入力する必要はありません。
なぜこの場合、手動で入力する必要がありますか?テンプレート関数には戻り値の型を推定する方法がないので、戻り値の型の型を指定する必要がありますか?
boost::variant<int, std::string> my_first_variant;
my_first_variant = 10;
assert(boost::get<int>(my_first_variant) == 10)
^
"*テンプレート関数は戻り値の型を推論する方法がないので、戻り値の型を提供する必要がありますか?*"はい、まさにあなた自身の質問に答えました。 ; - ] – ildjarn