次のプログラムを検討してください。
#include <iostream>
using namespace std;
int sum (int & a, int & b)
{
cout <<" NOn template function "<<endl;
return a+b;
}
template <typename T>
int sum ( const T & a, const T & b)
{
cout<<"Template Generated .."<<endl;
return a+b;
};
int main(int argc, char ** argv)
{
cout <<sum(10,20)<<endl;;
}
何が問題ですか:
非テンプレート関数の sum() が呼び出されることを期待していました。しかし、私の出力テンプレートでは、初期化された関数が呼び出されます。関数テンプレートのオーバーロードの一部ではありませんか。
私がここでやっている間違いの点を教えてください。