abs(-500);のようにして呼び出します。}を生成してくれます。~つまり、コンパイラから見るとテンプレート関数は「コード生成のテンプレートとなる関数」なので、テンプレート関数と呼ばれるわけです。共通です(つまり、abs(-500)を呼び出したならその関数内のT型変数はすべてint型になる)~そこで、二種類以上の違った型を引数に取りたいときは次のようにします。}また、以下のような特徴があります。独自に定義した型に対して適用するとどうなるでしょうか。おかしなことが起こり暴走する」か、「そもそもコンパイルが通らない」かのどちらかです。~正解は後者で、暴走したりすることはありません。生成し、コンパイルしようと試みて失敗します。定義されているならば、この''テンプレート関数は独自に定義した型に対しても適用できる''ということで、非常に汎用性の高い関数を定義することができます。[#z883fba1]C++はCの(ほぼ)上位互換であり、同じコンパイラでコンパイルできます。~しかし、C++からCの関数を呼び出すには注意が必要です。未解決ですと表示され、ビルドできません。~では、これを解決する方法を説明します。#endifこれでめでたくビルドに成功します。[#ua7c866c]なんでこんなことが必要なのか知りたい人のために解説です。~まず、C、C++のコードはコンパイラによってアセンブリ言語に変換されます。~その際、各関数にあたる部分のコードのはじめには、ラベルという目印が付きます。使う必要が発生します。情報を持ったラベル名が使われます。_acharpのようになるわけです。(これは例で、実際のラベル名は符号化されてぱっと見ても引数の型がわかるようにはなっていませんが。いうラベルは見つからずエラーとなります。どのような意味があるかというと、「この関数はCのラベル名で探してね」とコンパイラに指定する働きがあります。_aとなり、めでたく関数aを見つけることができて呼び出せる、というわけです。C++モードでコンパイルすればいいということに気づきます。修正しなくてもすみます。