1

次のバリアントがあります。

typedef boost::variant<int, float, bool> TypeVariant;

intそして、 orfloat型を型に変換するビジターを作成したいと考えていますbool


struct ConvertToBool : public boost::static_visitor<TypeVariant> {

    TypeVariant operator()(int a) const {
        return (bool)a;
    }

    TypeVariant operator()(float a) const {
        return (bool)a;
    }
};

ただし、これによりエラーメッセージが表示されます:

'TypeVariant ConvertToBool::operator ()(float) const': 引数 1 を 'T' から 'float' に変換できません

訪問者が特定のタイプにのみ適用できるようにする正しい方法は何ですか?

4

1 に答える 1