問題タブ [template-classes]
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++ - クラス テンプレート コンストラクターの SFINAE
テンプレートと SFINAE で何かを作ろうとしていますが、初心者です。最も単純なことをすべて機能させるために、膨大な時間を無駄にしています。それがどのように機能するかを理解するのを手伝ってもらえますか?
C< T , Ts... > のコンストラクターは、 A< U > または B< U > のいずれかである T パラメーターを取りますが、これら 2 つのケースでは異なる動作をします。私がそうしようとしたすべてをお見せすることはできません。これが私には最も愚かに思えた方法です。
注: g++ (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1 を使用しています。アップグレードする必要がありますか?
ありがとう
編集:詳細については、私も(特に)試しました:
申し訳ありませんが、ソリューションを実行できませんでした。私はついに見つけました:
c++ - テンプレートコンストラクタを継承するc++ 11
コンストラクターの継承の構文が少し奇妙だと思います。以下の例はうまく機能しますが、クラス テンプレートから継承する場合using sysTrajectory::sysTrajectory
ではなく、指定する必要がある理由がわかりません。using sysTrajectory<Real>::sysTrajectory<Real>
後者は次のエラーを返します: expected ‘;’ before ‘<’ token using sysTrajectory<Real>::sysTrajectory<Real>;
.
主要 :
c++ - 初めてテンプレート クラスを作成する際の問題
私はテンプレートクラスの作成について読んでいて、それを持っていると思います..まあ、1つの厄介なバグを除けば、私には理解できません!
これは私がこれまでに持っているものです:
これにより、エラーが発生します。
注: 私は Qt を使用しているので、よく知らない場合は、qDebug() や std::out など、QByteArray を CString などと考えてください。
私は多くの例を見てきましたが、私のものは同じようです。コンストラクターの実装をヘッダー ファイルに移動すると (以下のように)、問題なく動作します...:
だから私はここで何が間違っているのか分かりません...
どんな助けでも大歓迎です!
c++ - この非常に単純なコンストラクターがセグ フォールトを引き起こすのはなぜですか?
これは恥ずかしいことですが、私は C++ に少し慣れていないので、このコードがなぜセグメンテーション違反を引き起こしているのかわかりません。奇妙なことに、数回前の反復では問題なく動作しているように見えました。今は自分が何をしているのかさえわかりません。
これは基本的に、3 つのオブジェクトを保持するためのテンプレート クラス オブジェクトのコンストラクタです。コンストラクターの実装の最初の行 (x* に a を割り当てる場所) でセグ フォールトが発生します。
VecXd.hpp:
test.cpp:
私はこれを含むいくつかのバリエーションを試しました
x* = a;
x = new(a);
そして、私は関数を次のように機能させようとしました:
VecXd(T & a, T & b, T & c);
しかし、それを使用して呼び出すことはできません:
VecXd<int>(1,2,3);
お時間をいただき、誠にありがとうございました。
c++ - 関数へのパラメーターとしてイテレーター テンプレート クラスを使用する
パラメータ付きのコンストラクタがありますが、この行がコピーコンストラクタと呼ばれる理由がわかりません。この設計専用に記述された引数コンストラクター パラメーター。同様の問題について私が見つけたのは、typename の使用だけです。しかし、それは私の問題を解決しませんでした。
どこ
エラー:
c++ - 動的にサイズ変更された配列を使用して、テンプレート化されたクラスで operator= をオーバーロードする方法
私は C++ で独自のテンプレート クラスを作成するのが初めてで、数時間オンラインで回答を検索し、関数とそのパラメーターをいじった後、あきらめました。次のクラスの "=" 演算子で実行時に問題が発生しました:
マトリックス.h:
これをテストすると、コンパイルとリンクはエラーなしでスムーズに実行され、完全に有効な出力が得られます。しかし、ある行列を別の行列の値に代入しようとすると、「matrix_test が動作を停止しました」というメッセージが表示されてプログラムがクラッシュします。matrix_test.cpp の私のテスト コードは次のとおりです。
助けてくれてありがとう!
uml - ネイティブ UML 型を持つテンプレート クラス、およびテンプレート クラスの OCL 制約
同じ UML クラス図について 2 つの質問があります。1 つ目は、UML ネイティブ型を使用してテンプレート クラスをモデル化する方法についてです。2 つ目は、OCL 制約でテンプレート クラスを処理する方法についてです。
質問 1: テンプレート クラス
インターバルにテンプレート クラスを使用し、UML 標準を使用して表現したいと考えています。間隔は、整数と浮動小数で使用できる必要があります。これまでに見つけた最良の方法は次のとおりです。
ここでのアイデアは、パラメーターT
がどちらかのクラスのスーパークラスでInteger
あるテンプレート クラスを持つことFloat
です。
問題は、UML の基本型をグループ化するために再定義する必要があることです。T
テンプレートクラスを定義する明確な方法があり、それがタイプinteger
またはfloat
(ここではUMLのプリミティブです)のいずれかであると言うかどうかを知りたいです。
質問 2: テンプレート クラスの OCL 制約
私の問題の 2 番目の側面は、OCL 制約を追加して、間隔に少なくとも 2 つの要素が含まれている必要があることを示したいということです。T
問題は、前のクラス図のバインディングに応じて、ルールが同じであってはならないことです。
フロートの場合:
整数の場合:
そのため、OCL で、 が にバインドされている場合にのみ適用されるルールと、T
にバインドされてInteger
いる場合にのみ適用されるルールがあることを示す方法を見つける必要がありますFloat
。私は OCL の専門家ではなく、役立つ情報を見つけることができなかったので、助けを求めています。
前もって感謝します、
バスティアン。
c++ - テンプレート クラスと非テンプレート クラスを同じ cpp ファイルに配置するとリンク エラーが発生する - C++
テンプレート化されたクラスとテンプレート化されていないクラスを同じ .cpp ファイルに含めると、リンク時に問題が発生します。
C++ FAQ 35.13,35.14,35.15 を調べましたが、問題は解決しません。
http://www.parashift.com/c++-faq-lite/separate-template-class-defn-from-decl.html
私はclangでXcode 5を使用しています。
これが例です
barfoo.h
cpp ファイルは次のとおりです。
barfoo.cpp
エラーは
clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)
しかし、バークラスを削除すると、エラーが消えます。なぜこのエラーが発生するのか教えてもらえますか?
ヘッダーファイルに定義を入れると問題を解決できますが、コードの肥大化という別の問題が発生する可能性があります。別の解決策を提供できる人はいますか?