私は次の機能を持っています
template <typename T, typename U>
const T* visitor_fct(U& operand)
{
return (boost::get<T>(&operand));
}
私がする時
boost::variant<int, std::string> str = "string";
std::cout << visitor_fct<std::string>(str) << std::endl;
正しい出力が得られます
しかし、 str の宣言を次のように変更すると:
boost::variant<int, std::string, bool> str = "toto";
私はいつもnullptr
;を取得しています。
なんで ?