問題タブ [template-function]
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++ - テンプレート関数による int から float への自動キャストはありません
何年にもわたって C++ でコーディングした後、今日、簡単な質問をされましたが、実際にその答えを見つけることができなかったので、ここにいます。
なぜこのエラーが発生しているのか疑問に思うだけでなく、テンプレート関数だけを変更して (関数を変更せずに)以下のエラーを解決する方法を知りたいです。main()
c++ - 読み取り専用変数は割り当て可能な C++ テンプレート関数ではありません
独自のテンプレート スワップ関数を作成しようとしていますが、このコードには何か問題があります。
この 2 行a = b
でb = tmp
、エラーが発生しますread only variable is not assignable
。Xcodeを使用しています。
UPD:それは完全なコードです:
ご覧のとおり、quick_Sort
関数内で新しいスワップ関数が呼び出されます
c++11 - json 逆シリアル化のための実行時のテンプレート関数型キャスト
配列の json 表現を std::vector にデシリアライズする関数を書きたいと思います。私が使用している json ライブラリは、Facebook の愚かなライブラリの一部です。次のようなことを達成したいのですが、残念ながらうまくいきません。
上記のコードでは、jsonField は配列フィールドの表現です。したがって、コードは配列をループしようとします。次に、各要素に対して。ジェネリック ベクトル: ベクトルにプッシュ バックしようとします。問題は、std::string から int にキャストできないと不平を言うため、コードをコンパイルできないことです。T=int の場合。
4 つのメソッドのオーバーロード関数を実装する必要なしに、そのような汎用関数を作成する方法がわかりません。static bool deserializeHelper(std::string fieldName, vector< int >& structField, const folly::dynamic& jsonObj) ....
ありがとう。
c++ - 構造体のタイプまたはフィールドが存在するかどうかを確認する方法
「倍数」(倍数を表す構造体) のベクトルの最大絶対値を計算する次のコードがありstd::pair
ますTriple
。
これはまだテストしていませんが、ペアにフィールドstd::pair
がないため、構造体を関数に渡すときにこれが機能しないことはわかっています。third
フィールドを取得してチェックするためのコードブロックがthird
「利用可能」であり、渡された構造体がTriple
.
c++ - テンプレート型を関数に渡し、ローカル変数の割り当てに使用する問題 c++
次のコードがあります。
次のようなステートメントで呼び出すことができます
また
whereTriple
は、単純に 3 つの要素で定義した構造体です (本質的には と同じstd::pair
ですが、3 つのフィールドに拡張されています)。また、との関数diffusionLimitedAggregateRandomWalk2D
とdiffusionLimitedAggregateRandomWalk3D
戻り値の型はそれぞれ.std::vector<std::pair<int,int>>
std::vector<Triple<int,int,int>>
問題は、上記のいずれかのステートメントで呼び出すと、次のエラーが発生することです (割り当てステートメントで発生しますaggResults = ...
)。
の場合も同様ですTriple<int,int,int>
。私が理解していることから、これは、これら2つの構造体にオーバーロードされた代入演算子が必要であることを意味します-ただし、次のステートメントは私のプログラムで以前に正しく使用されているため、ここでは問題ではないと思います:
したがって、DLA メソッドの結果を正しい型の変数に割り当てることができることはわかっていますが、上記のように型をテンプレート関数に渡して試してみると、コンパイラは文句を言います。
ここで何が起こっていて、この問題を解決するにはどうすればよいですか?
c++ - ベクトルのマージ + 関数のバージョンの単一の互換バージョンへのマップ
これらは、コンテナーstd::map
用std::vector
と Lambda 式を使用したコンテナー用の 2 つのオーバーロードされた関数です。
pair
Lambda 式の型 (私の場合はペアの 2 番目) と通常の範囲型 ( vector
、deque
など)をチェックできるテンプレート関数にする方法はありますか?