C 関数は引数の型として「auto」を利用できますか?

DDD
リリース: 2024-11-17 06:12:03
オリジナル
643 人が閲覧しました

Can C   Functions Utilize

C で Auto を引数として渡す

「auto」キーワードを別の言語に渡すときに引数として利用する方法が存在します。関数。つまり、次のような関数を定義できます。

int function(auto data)
{
    // Does something
}
ログイン後にコピー

C 20 の関数パラメータ型としての Auto の導入

C 20 により、関数パラメータの型として「auto」。例として次のコード スニペットを考えてみましょう。

int function(auto data) {
   // Do something, there are no constraints on data
}
ログイン後にコピー

短縮関数テンプレート

さらに、「auto」を短縮関数テンプレートとして使用できます。これは、非制約型制約の特殊なインスタンス、つまり「制約のない自動パラメータ」です。一方、「制約付き自動パラメータ」は概念を採用し、次のようになります。

void function(const Sortable auto& data) {
    // Do something that requires data to be Sortable
    // Assuming there is a concept named Sortable
}
ログイン後にコピー

C 仕様からの説明

C 仕様では次のように定義されています。 「プレースホルダ型指定子」は次のとおりです。

type-constraint<sub>opt</sub> auto

type-constraint<sub>opt</sub> decltype ( auto )
ログイン後にコピー

このようなプレースホルダ型指定子は、初期化子からの推論を通じて後で置換されるプレースホルダ型を指定します。関数宣言またはラムダ式の「decl-specifier-seq」で使用される場合、「type-constraintopt auto」形式のプレースホルダー型指定子は、関数が短縮された関数テンプレートであることを示します(9.3.3.5 による)。

以上がC 関数は引数の型として「auto」を利用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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