問題タブ [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.

0 投票する
5 に答える
6185 参照

c++ - std::tuple の最初のタイプの削除

これは非常に単純な質問のようです: a の最初 (n 番目) の型をどのように削除しstd::tupleますか?

例:

上記の操作は に変換tuple1されtuple2ます。出来ますか?

0 投票する
6 に答える
3507 参照

c++ - タプルからのコンストラクター引数

クラス型といくつかの引数型によってパラメーター化されたテンプレートがあるとします。これらの型に一致する一連の引数がタプルに格納されます。これらをクラス型のコンストラクターに渡すにはどうすればよいでしょうか?

ほとんどの C++11 コードでは:

...長さを固定せずにコンストラクター呼び出しでどのように埋めることができますか?

これを行う再帰的なテンプレート呼び出しの複雑なメカニズムを思いつくことができると思いますが、これを最初に望んでいるとは信じられないので、すぐに使用できるソリューションがあると思います、おそらく標準ライブラリでも。

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

c++ - 共通基本クラスは、タプルの空の基本クラス最適化を中断します

gcc 4.7.1は、タプルの空の基本クラスの最適化を行います。これは、非常に便利な機能だと思います。ただし、これには予期しない制限があるようです。

この場合、タプルは実際には4バイトより大きいため、最後のアサーションは失敗します。クラス階層を壊さずにこれを回避する方法はありますか?または、他の方法でこの場合に最適化する独自のペア実装を実装する必要がありますか?

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

c++ - std::tupleの変換Tへ

だから私は与えられましたstd::tuple<T...>、そして私は受け入れる関数ポインタを作りたいですT...、現在これは私が持っているものです;

ただし、からすべてのインデックスを手動で入力しないと、これを行う方法を見つけることができないようです0, ..., tuple_size<V>::value。FunctionPtrは、コンテキストで定義されます。ここでV=std::tuple<T...>(また、可変個引数テンプレートがすでに存在します(したがって、直接渡すことはできませんT...))

インデックスのリストを生成し、黒魔術を行う必要があると思います。

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

c++ - std::tuple の要素への参照を取得するには?

を使用して、 のn番目の要素の値を取得できます。しかし、そのタプルの 1 つの要素を関数への参照として渡す必要があります。std::tuplestd::get<n>(tuple)

の要素への参照を取得するにはどうすればよいstd::tupleですか?

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

c++ - クラスで std::get サポートを有効にする

std::get をサポートするために特化しなければならないテンプレートは何ですか?

できるようになるためには、何を専門化する必要がありますか。

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

c++ - 関数のコンパイル時変数を介してC++ 11のタプル要素にアクセスします

次の最小限の例は、次のようにコンパイルされg++ -std=c++11 -Wall tuple.cpp -o tupleます。

現在、インデックスを指定するテンプレートを使用したくありません (正確な理由: 自動的に推定されるテンプレートがあり、それらすべてを指定する必要はありません)。だから私の最初の試みは:

これはコンパイルできないことを理解しています。iコンパイル時に認識されるコンパイラを保証する方法はありますか? たぶん、このようなものですか?

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

c++ - std::ignore の要件

C++11 では、次のオブジェクトが導入されていますstd::ignore

簡潔にするために、

私が知る限り、 [C++11, 20.4.2.4:7]の仕様により、 の唯一の要件Tは であるということです。CopyAssignablestd::tie

Tg++-4.8 では、それが追加であることがわかりましたDefaultConstructible(たとえば、T x;コンパイル)。これは実装定義の動作ですか?

(私が見逃した他の要件がある場合はT、詳しく説明してください。)