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 サイトの他の関連記事を参照してください。