ホームページ > バックエンド開発 > C++ > C では「template」を使用してテンプレート引数を自動的に推定できますか?

C では「template」を使用してテンプレート引数を自動的に推定できますか?

Susan Sarandon
リリース: 2024-11-05 02:43:01
オリジナル
323 人が閲覧しました

Can Template Arguments Be Deduced Automatically in C   Using `template`?

テンプレートを使用したテンプレート引数推定の自動化

質問:

テンプレートを使用できますコンパイル時に型を明示的に指定せずに引数を渡すことはできますか?たとえば、テンプレート の代わりに、 template を使用できますか?

答え:

上記のアプローチは C では不可能です。最も近い代替方法は、マクロを使用することです:

<code class="cpp">#define AUTO_ARG(x) decltype(x), x

f.bar<AUTO_ARG(5)>();
f.bar<AUTO_ARG(&Baz::bang)>();</code>
ログイン後にコピー

もう 1 つのアプローチは、テンプレート引数を推定するジェネレーター関数を使用することです:

<code class="cpp">template <typename T>
struct foo {
    foo(const T&amp;) {} // do whatever
};

template <typename T>
foo<T> make_foo(const T&amp; x) {
    return foo<T>(x);
}</code>
ログイン後にコピー

今度は、次のように書く代わりに、

<code class="cpp">foo<int>(5);</code>
ログイン後にコピー

次のように簡単に書くことができます:

<code class="cpp">make_foo(5);</code>
ログイン後にコピー

このメソッドはテンプレート引数の推論を自動化します。引数を渡すためのより便利な方法を提供します。

以上がC では「template」を使用してテンプレート引数を自動的に推定できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート