#include <cstdio>
auto f(const auto &loc){
printf("Location: %p\n", &loc);
}
int main()
{
auto x {1};
auto y {2.3};
f(x);
f(y);
}
がg++ -std=c++14 dummy.cpp
質問でコンパイル、コードを検討:テンプレート関数について
、型を明示的にコンパイル時に(f<int>(2)
)記載されています。
関数f
はどのように異なる型の引数を受け入れますか? Concept Technical Specification「関数」
auto f(const auto &loc){
printf("Location: %p\n", &loc);
}
の下
コンパイル時にすべてが分かっています。だから質問は何ですか? – Walter
"テンプレート関数の場合、型は明示的に言及されています" - 必ずしもそうではありません。関数テンプレート呼び出しは、関数引数からテンプレートパラメータを推定することができます。 – aschepler