問題タブ [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++ - std::tuple の最初のタイプの削除
これは非常に単純な質問のようです: a の最初 (n 番目) の型をどのように削除しstd::tuple
ますか?
例:
上記の操作は に変換tuple1
されtuple2
ます。出来ますか?
c++ - タプルからのコンストラクター引数
クラス型といくつかの引数型によってパラメーター化されたテンプレートがあるとします。これらの型に一致する一連の引数がタプルに格納されます。これらをクラス型のコンストラクターに渡すにはどうすればよいでしょうか?
ほとんどの C++11 コードでは:
...
長さを固定せずにコンストラクター呼び出しでどのように埋めることができますか?
これを行う再帰的なテンプレート呼び出しの複雑なメカニズムを思いつくことができると思いますが、これを最初に望んでいるとは信じられないので、すぐに使用できるソリューションがあると思います、おそらく標準ライブラリでも。
c++ - 共通基本クラスは、タプルの空の基本クラス最適化を中断します
gcc 4.7.1は、タプルの空の基本クラスの最適化を行います。これは、非常に便利な機能だと思います。ただし、これには予期しない制限があるようです。
この場合、タプルは実際には4バイトより大きいため、最後のアサーションは失敗します。クラス階層を壊さずにこれを回避する方法はありますか?または、他の方法でこの場合に最適化する独自のペア実装を実装する必要がありますか?
c++ - std::tupleの変換Tへ
だから私は与えられましたstd::tuple<T...>
、そして私は受け入れる関数ポインタを作りたいですT...
、現在これは私が持っているものです;
ただし、からすべてのインデックスを手動で入力しないと、これを行う方法を見つけることができないようです0, ..., tuple_size<V>::value
。FunctionPtrは、コンテキストで定義されます。ここでV=std::tuple<T...>
(また、可変個引数テンプレートがすでに存在します(したがって、直接渡すことはできませんT...
))
インデックスのリストを生成し、黒魔術を行う必要があると思います。
c++ - std::tuple の要素への参照を取得するには?
を使用して、 のn
番目の要素の値を取得できます。しかし、そのタプルの 1 つの要素を関数への参照として渡す必要があります。std::tuple
std::get<n>(tuple)
の要素への参照を取得するにはどうすればよいstd::tuple
ですか?
c++ - クラスで std::get サポートを有効にする
std::get をサポートするために特化しなければならないテンプレートは何ですか?
できるようになるためには、何を専門化する必要がありますか。
c++ - 関数のコンパイル時変数を介してC++ 11のタプル要素にアクセスします
次の最小限の例は、次のようにコンパイルされg++ -std=c++11 -Wall tuple.cpp -o tuple
ます。
現在、インデックスを指定するテンプレートを使用したくありません (正確な理由: 自動的に推定されるテンプレートがあり、それらすべてを指定する必要はありません)。だから私の最初の試みは:
これはコンパイルできないことを理解しています。i
コンパイル時に認識されるコンパイラを保証する方法はありますか? たぶん、このようなものですか?
c++ - std::ignore の要件
C++11 では、次のオブジェクトが導入されていますstd::ignore
。
簡潔にするために、
私が知る限り、 [C++11, 20.4.2.4:7]の仕様により、 の唯一の要件T
は であるということです。CopyAssignable
std::tie
T
g++-4.8 では、それが追加であることがわかりましたDefaultConstructible
(たとえば、T x;
コンパイル)。これは実装定義の動作ですか?
(私が見逃した他の要件がある場合はT
、詳しく説明してください。)