boost-variant

    4

    1答えて

    私はbencodeをデコードしており、gcc 4.4でうまくいくいくつかのコードを持っています。このエラーメッセージを表示します++ #ifndef BENCODE_VALUETYPES_H #define BENCODE_VALUETYPES_H #include <boost/variant.hpp> #include <string> #include <vector> #in

    9

    1答えて

    typedef boost::variant<int, double> Type; class Append: public boost::static_visitor<> { public: void operator()(int) {} void operator()(double) {} }; Type type(1.2); Visi

    12

    1答えて

    次のコードはコンパイルされ、「正しいこと」を行います。 #include <boost/variant.hpp> #include <iostream> int main() { int a = 10; boost::variant<int&, float&> x = a; a = 20; std::cout << boost::get<int&>(

    14

    2答えて

    私はstring,boolおよびintの3種類を受け入れるboost::variantと宣言しました。次のコードは、私のバリアントがconst char*を受け入れ、boolに変換していることを示しています。 boost::variantがリストにない型を受け入れて変換するのは正常な動作ですか? #include <iostream> #include "boost/variant/varian

    6

    1答えて

    私が理解できない以下のコードで動作を見ています。 bool operator()(T other) const bool operator()(const T &other) const プログラムの出力は次のとおりです:ポイントは、私は、次のいずれかのようなoperator()の2番目のオーバーロードを宣言した場合ということです 文字列 しかし、私は次のように使用している場合宣言: boo

    8

    1答えて

    私はboost::variantの実装について興味があります。 このように機能しますか? 2人のメンバー: (第2のテンプレートパラメータなどのために、すなわち0最初のテンプレートパラメータは、1)現在記憶されているタイプを表す数字 コースの全ての可能な種類(の組合最大のサイズ)。 apply_visitor(): (これはジャンプテーブルとしてコンパイルすることが最悪の場合にはその一定の時間がか

    6

    1答えて

    boost::variantのすべての型が同じメソッドをサポートしている場合は、一般的に呼び出す方法がありますか?つまり、static_visitorの各メソッドごとに別々に呼び出す方法はありませんか? 私は仕事に、このような何かを取得しようとしている: class A { void boo() {} }; class B { void boo() {} };

    14

    2答えて

    私は、Boost Variantとc/C++のデータ型がunionの違いは何ですか?私はunionデータ型が同じメモリ位置を占め、メモリ領域内の最大データ型が使用されるメモリの総量を占有することを知っている。 intとfloat最大と等しい大きさであるので union space { char CHAR; float FLOAT; int INTEGER; }S;

    1

    1答えて

    この問題に関しては多大な疑問がありますが、どれも問題の解決策ではないようです。私はこれが本当にBoost :: Variantの問題だとは思わない。私はちょうど間違った方法でテンプレートを使っていると確信しています。私はコードをコンパイルして自分自身で問題を見ることができるように、コードを削除することができました。かなり単純です。gccからエラーが表示されたままです。私はおそらく何か愚かなことをし

    1

    1答えて

    標準の組み込み型へのポインタを含むboost :: variant型のstd :: vectorがあります。 コードで std::vector<boost::variant<int *, double *> > bv; bv.resize(2); int n = 42; bv[0] = &n; double d = 102.4; bv[1] = &d; これはうまく機能し、そしてIは