[解決済み] C++テンプレートコンストラクタ
2022-03-06 23:46:54
質問
テンプレートではないクラスで、引数なしのテンプレートコンストラクタを持ちたいのですが、どうすればよいですか?
私が理解する限り、それを持つことは不可能です(デフォルトのコンストラクタと衝突してしまうため -)。 ということでよろしいでしょうか? ), で、その回避策は以下の通りです。
class A{
template <typename U> A(U* dummy) {
// Do something
}
};
もしかしたら、これに対するより良い代替案(あるいはより良い回避策)があるのでは?
解決方法は?
コンストラクタのテンプレートを呼び出すときに、テンプレートの引数を明示的に指定する方法がないため、引数演繹法で推論する必要があります。 というのも、もし
Foo<int> f = Foo<int>();
は
<int>
という型のテンプレート引数リストです。
Foo
であり、そのコンストラクタのものではありません。 コンストラクタのテンプレートの引数リストがどこにもないのです。
あなたの回避策を用いても、そのコンストラクタ・テンプレートを呼び出すために引数を渡さなければなりません。 何を実現しようとしているのか、まったく不明です。
関連
-
[解決済み] エラー: '...'のメンバー '...'が非クラス型である場合のリクエスト
-
[解決済み] C++で、あるコンストラクタを別のコンストラクタから呼び出す(コンストラクタ・チェイニングを行う)ことは可能ですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] C#でベースコンストラクタを呼び出す
-
[解決済み] コンストラクタ内の仮想メンバー呼び出し
-
[解決済み] template "と "typename "キーワードはどこに、なぜ入れなければならないのですか?
-
[解決済み] あるコンストラクタを別のコンストラクタから呼び出す
-
[解決済み] ベースクラスのコンストラクタを呼び出す際のルールは?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】C++テンプレートのtypedef
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】C++の余分な資格エラー
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件