初期化子リストを使用して明示的なテンプレート コンストラクターを呼び出すことはできますか?
Dec 02, 2024 pm 04:56 PM初期化リストを使用して明示的なテンプレート コンストラクターを呼び出す方法
質問:
明示的なテンプレートを使用できますコンストラクターは、次のように初期化子リストを使用して呼び出されます。例?
struct T { template<class> T(); }; struct U { U() : t<void>() {} //does not work T t; };
ログイン後にコピー
答え:
残念ながら、初期化子リストを使用してテンプレート コンストラクターを明示的に呼び出すことはできません。
C によると14.8.1/7 の標準では、「[...] 変換メンバー関数テンプレートとコンストラクター メンバーのため関数テンプレートは関数名を使用せずに呼び出されるため、これらの関数テンプレートに明示的なテンプレート引数リストを提供する方法はありません。"
これは、独自の名前がないコンストラクターはテンプレート引数を明示的に受け入れることができないことを意味します。あなたの場合、コンパイラは t
この問題に対処するには、次の回避策を採用できます。
struct T { template<class U> T(identity<U>); }; struct U { U() : t(identity<void>()) {} T t; };
ログイン後にコピー
ここでは、ID がテンプレート パラメーターのプレースホルダーとして機能します。 。 C 20 内では、アイデンティティ タイプとして std::type_identity を使用できます。
以上が初期化子リストを使用して明示的なテンプレート コンストラクターを呼び出すことはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
2つのポイント博物館:すべての展示とそれらを見つける場所
3週間前
By 尊渡假赌尊渡假赌尊渡假赌

人気の記事
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
2つのポイント博物館:すべての展示とそれらを見つける場所
3週間前
By 尊渡假赌尊渡假赌尊渡假赌

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7126
9


Java チュートリアル
1534
14


Laravel チュートリアル
1256
25


PHP チュートリアル
1205
29


CakePHP チュートリアル
1153
46



C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか?

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか?
