問題タブ [stdtuple]
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++ - タプル メンバのコピー コンストラクタを削除するとエラーが発生する
このコード片
Foo
正常に動作しますが、コピー コンストラクターを削除すると、次のコンパイル エラーで失敗します: use of deleted function Foo::Foo(const Foo&)
。
しかし、オブジェクトを移動できることを明示的に伝えているのに、なぜコンストラクターは移動コンストラクターではなくコピー コンストラクstd::tuple
ターを使用するのでしょうか? インスタンスをコピーするのではなく、インスタンスを移動するようFoo
に強制するにはどうすればよいですか?std::tuple
Foo
c++ - 構築中に std::tuple メンバー参照を使用しますか?
この例が私の問題を示していることを願っています。std::tuple
全体std::tuple
が構築される前に、以前に構築されたメンバーを参照したいと思います。これに対するエレガントな解決策はありますか?ハッカーを使えばそれが可能であることはわかっていvoid *
ますが、その暗い孤独な道を進む前に助けを求めたいと思います.
アイデア1
関数を作成しようとしましたget_ref
が、まだ作成されていないオブジェクトのメンバー関数にアクセスできないという同じ問題が発生します。とにかく、これは私の試みの1つです。
アイデア2
次に、 の各要素がどこにあるかへのポインター/参照を含む静的オブジェクトを使用std::function
して、 で行うことのようなことができるのではないかと考えました。これは試してみる価値があると思いますが、実際に実装する方法がわかりません...std::place_holders
std::tuple
c++ - コンパイル時に std::tuple の重複する型をチェックする方法は?
次のヘルパーが必要です。
値は次のとおりです。
- 重複がある場合はtrue 。
- 重複がない場合はfalse 。
タプルを再帰的に繰り返してチェックを実行する方法がわかりません。この問題を解決するための戦略が存在することを知りません。
このヘルパーの作成方法を誰かに説明してもらえますか?
c++ - std::make_tuple の理由は何ですか?
なぜstd::make_tuple
存在するのですか?テンプレート パラメーターを回避できるため、関数によって入力する必要がある文字数が減る状況があることはわかっています。しかし、それが唯一の理由ですか?std::tuple
他のクラステンプレートにはそのような機能がないのに、その機能が存在することの何が特別なのですか? std::tuple
そのような状況でより頻繁に使用できるからですか?
std::make_tuple
文字数を減らす2 つの例を次に示します。
しかし、上記のように、他の多くのクラス テンプレートにはこのような関数はありません。
c++ - std::get<> をヘルパー メソッドでラップする
私はこのようなクラスを持っています:
このように使用できる関数テンプレートを定義する方法はありますか?
または、それが不可能な場合は、このように?
私の素朴なアプローチでは、間違ったコードを思いつきました:
T
そして、それを使用してテンプレートを暗黙的にインスタンス化するとき、コンパイラーは実際に型を推測できません。