問題タブ [stdany]

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.

0 投票する
4 に答える
15540 参照

c++ - C++11 標準は、boost::any のようなものを提供していますか?

たとえば、boost::functionほぼ完全に に移動std::functionします。boost::shared_ptr

しかし、私は見つけることができませんstd::anyか?なんらかの理由で名前が変更されたのか、それとも新しい標準にまったく配置されなかったのか?

0 投票する
7 に答える
49390 参照

c++ - C++ std::map 任意の型の値を保持

基本的に、フィールド名(文字列)を任意のタイプの値にマップするハッシュマップを保持する MyClass が必要です。この目的のために、タイプと値の情報を保持する別の MyField クラスを作成しました。

これは私がこれまでに持っているものです:

しかし、ご覧のとおり、MyField の型パラメーターを指定しなかったため、マップ宣言は失敗します...

だから私はそれが次のようなものでなければならないと思います

また


しかし、宣言されたマップは特定のタイプの MyField しか保持できないため、明らかにこれは私の目的全体を損ないます..任意のタイプの MyField クラスを保持できるマップが必要です..

これを達成する方法はありますか..?

0 投票する
2 に答える
2920 参照

c++ - タイプ消去タイプ消去、「何か」質問はありますか?

では、type eraser を使用して type erase を実行したいとします。

自然を可能にするバリアントの疑似メソッドを作成できます。

私の質問は、これをどのように拡張するのstd::anyですか?

「そのまま」ではできません。しかし、a に代入/構築する時点で、std::any必要な型情報が得られます。

したがって、理論的には、拡張されたany:

上記のタイプの構文が機能するように、何らかのコードを自動的に再バインドできます。

理想的には、バリアントの場合と同じくらい簡潔に使用されます。

これをtypeに保ちながら、ラムダ構文を合理的に使用して物事を単純にすることはできますか?

理想的には私が欲しい:

または同様の構文。これは不可能ですか?実行不可能ですか?簡単?

0 投票する
2 に答える
954 参照

c++ - std::any および std::optional を使用した any_cast

を に入れると、Tstd::any取得できますany_cast<T>(my_any)。しかし、標準 (= C++17、現時点では投票段階) には、oa がそうである場合とそうでない場合any_cast<T>(optional<any> oa)を返すような関数が含まれていますか? またはそれらの線に沿った何か?nulloptnulloptstd::any_cast<T>(oa.value())

編集:人々が実装を提案しているように見えるので、私が今使っているものもリストします:

0 投票する
1 に答える
2992 参照

c++ - `std::any_cast` はコピーを返します

のドキュメントをstd::any_cast読んでいましたが、API のキャストが、保持されているオブジェクトまたはそれへのポインターに値を返すのは奇妙だと思います。参照を返さないのはなぜですか? 関数が非ポインター型の引数で呼び出されるたびに、コピーを作成する必要があります。

キャストのポインター バージョンは、もう少し意図を示し、もう少し明確になる可能性があることがわかりますが、返される値をこのような参照にしないのはなぜですか?

それ以外の

さらに、参照を要求しても、キャストが参照を削除し、格納されたオブジェクトにコピーを返すように見えます。ここで関数オーバーロード 1-3 の戻り値の説明を参照してください http://en.cppreference.com/w/ cpp/ユーティリティ/any/any_cast