問題タブ [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++ - c++11 でストリームのタプルに値を出力する方法
1 つのストリームではなく複数のストリームに<<
出力できるストリーム オペレータを作成しようとしています。std::tuple
基本的に、私はUnixtee
コマンドをc ++で記述しようとしています。
c++11 で可変個引数テンプレート プログラミングを使用して、ストリーム演算子を再帰的に記述しようとしました。私がこれまでに持っているのは、以下のコードのとおりです。しかし、コードはコンパイルされず、エラー メッセージは非常に長くなります。
私の質問は、コードを修正して機能させる方法ですか?
g++ -std=c++11
(gcc-4.8.1) でコンパイルしたときの最初のエラー メッセージは次のとおりです。
PS SOを検索しましたが、複合ストリームオブジェクトの作成に関する投稿がいくつかあります。このコードには、stream と streambuf の多くの内部構造が含まれています。ここで私が求めているのは、同様のタスクを達成するための単純で素朴なソリューションです。
ありがとう
私のコード:
更新: 以下は、@KerrekSBのサンプルコードに基づいて私にとってうまくいったものです:
@ジャロッド42、
どうもありがとう。あなたのコードは、私のプロトタイプよりもはるかにコンパクトに再帰/ループを実行し、私のコードでの参照型の使用を修正します。元のテスト ケースは、デモで示したとおりに機能します。ただし、以下の「not OK」行に示すように、ストリームで( std::endl
「Foo」のstd::ofstream
代わりに) または (の代わりに)を使用すると、バージョンをコンパイルできません。std::cout
それらも修正する方法はありますか?
c++ - タイプC ++としてのクラスでタプルを使用する
このように Rettangolo クラスのメソッドを定義しました
私の問題は、返された値をメインで使用することです。私はする必要があります
しかし、基本的に保存方法がわからないので、タプルの型が標準ではないため、返された値を使用します
ご協力いただきありがとうございます
arrays - クラス内の std::tuple の静的サイズの配列を使用した segfault の理解
画像の各ピクセルに 3 つのデータポイントを格納したいクラスがあります。私は std::tuple がこれを行う良い方法だと思った:
この関数で宣言されたカメラ マネージャー オブジェクトがあるため、segfault は main(int argc, char ** argv) で直接発生します。
ここで何が起こっているのですか?
c++ - データのタプルを作成し、関数の引数としてアンパックして送信する
こんにちは、誰かが私を助けてくれるかどうか疑問に思っていました。CallFunction (コメントが入っているビット) を実装しようとしています。どうすればいいのかわかりません。
[質問] ...Arguments から作成された型のタプルを作成したいのですが、修飾子、const、& などを削除したいので、データを入力して関数に渡すことができます。 .
今のところ、戻り値の型は気にしません。誰かが私を正しい方向に向けるか、似たようなことをしましたか? それとも、完全にクレイジーで、できることではないのでしょうか。うーん!とにかくそれをチェックするためのTY :)
その使用
c++ - C ++の関数から複数のベクトルを返す?
関数から複数のベクトルを返したい。タプルが機能するかどうかはわかりません。試しましたが、機能していません。
c++ - std::tuple の要素に func を自然な (逆ではない) 順序で適用する
任意のタプルの各要素に対して、テンプレートまたはオーバーロードされた関数を呼び出す必要があります。正確には、タプルで指定されている要素に対してこの関数を呼び出す必要があります。
例えば。私はタプルstd::tuple<int, float> t{1, 2.0f};
と関数を持っています
struct/function が必要ですApply
。これを呼び出すと、次のようApply<Lambda, int, float>()(Lambda(), t)
になります。
ではない2.0f; 1;
。
「生の」パラメーターパックが関数に渡され、タプルに対して逆の順序でそれを行う方法を知っている場合、私は解決策を知っていることに注意してください。しかし、部分的に特殊化する次の試みはApply
失敗します。
コードはコンパイルされますが、最初の引数のみが出力されます。ただし、ForwardsApplicator
専門分野を次のように置き換えると、
それは正しく動作します - もちろん、長さ 2 のタプルに対してのみです。可能であれば、エレガントに - 任意の長さのタプルに対してどのように行うのですか?
編集:答えてくれてありがとう!3 つすべてが本当に的を射ており、考えられるすべての観点から問題を説明しています。