テンプレート制約 C++
2023-07-11 04:41:45
質問
C#では、ジェネリックパラメータとして使用できる型に制約を課すジェネリック型を定義することができます。次の例は、ジェネリック制約の使用方法を示しています。
interface IFoo
{
}
class Foo<T> where T : IFoo
{
}
class Bar : IFoo
{
}
class Simpson
{
}
class Program
{
static void Main(string[] args)
{
Foo<Bar> a = new Foo<Bar>();
Foo<Simpson> b = new Foo<Simpson>(); // error CS0309
}
}
C++でテンプレートのパラメータに制約を課す方法はありますか?
C++0xにはこのためのネイティブサポートがありますが、私は現在の標準C++について話しているのです。
どのように解決するのですか?
他の人が言っているように、C++0x はこれを言語に組み込んでいます。 それまでは、私がお勧めするのは Bjarne Stroustrup 's テンプレート制約のための提案 .
Edit2: 見た目は の概念は C++0x から削除されたようです。 .
関連
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み] template "と "typename "キーワードはどこに、なぜ入れなければならないのですか?
-
[解決済み] T-SQLを使用して外部キー制約を一時的に無効にするにはどうすればよいですか?
-
[解決済み] C++テンプレート関数定義の.CPPファイルへの格納
-
[解決済み】C++テンプレートのtypedef
-
[解決済み】C++のSTLはなぜテンプレートに大きく依存しているのですか?(そして*インターフェイス*にはない)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
-
[解決済み] 概念とテンプレート制約の違いは何ですか?