1

私は次の機能を持っています

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;を取得しています。

なんで ?

4

2 に答える 2