問題タブ [boost-any]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - boost::any_cast と std::optional の
私は を使用しboost::any
、そのような値を取得する関数をいくつか持っていますが、失敗する可能性があるため、実際には返されますstd::optional<boost::any>
(まあ、今のところは ですstd::experimental::optional
)。ここで、オプションを使用せずに、入力した値を を使用して取得しboost::any_cast(my_retrieved_any)
ます。オプションのケースを処理するために、次のように記述しました。
しかし、これはコンパイルされません (Boost 1.58 および GCC 4.9.3 を使用)。私は得る:
これはどのように可能ですか?引数が ではないのはなぜboost::any&
ですか? 変数を operand.value() に設定してから、それを any_cast に渡してみましたが、どちらも役に立たなかったようです:
これは私を得る:
について、私が考慮していないことがあるはずですboost::any
...それは何ですか? そして、この「キャスト」操作を修正するにはどうすればよいですか?
c++ - boost::any には RTTI が必要ですか?
Boost Web サイトで、boost::any の使用または RTTI に関する情報は見つかりませんでした。
これが要件であることをいくつかの場所で読みましたが、簡単なテスト プロジェクトを作成しました。RTTI を使用する場合と使用しない場合の両方でビルドされます。
では、パフォーマンスとメモリの問題を抱えた RTTI は、boost::any および同様のクラスに必要なのでしょうか?
c++ - C++:任意の型のベクトルを格納するベクトルを作成する方法は?
任意のタイプのベクトルを別のベクトルに格納したいと思います。たとえば、「std::vector v1」と「std::vector v2」という 2 つのベクトル インスタンスがあります。そして、それらをベクトルに入れたいと思います。私はすでにこのように試しました:
他にもいくつかの方法がありますが、何も機能しません。可能な解決策を知っていますか?
ありがとう!
c++ - boost::any の保持オブジェクトを返す関数の変数の戻り値の型
C
type のフィールドを持つクラスがあるとしますstd::vector<boost::any>
。インデックス演算子がありますが、オブジェクト自体ではなく、インデックスにあるオブジェクトが保持するオブジェクトを返しconst boost::any C::operator[](const size_t i);
たい場合はどうすればよいでしょうか? 関数には変数の戻り値の型が必要です...これは不可能です。とにかくこれを達成するための間接的な方法などの方法はありますか?C::operator[](const size_t i)
any
i
any