なぜコンパイラはこれを許可していますか?なぜコンパイラはコンパイルエラーをスローしないのですか?
#include <iostream>
using namespace std;
template<typename T>
void func(T t)
{
cout<<"The value is :"<<t<<"\n";
}
template<>
void func<int>(int d) //Template Specialization
{
cout<<"Template function\n";
}
void func(int d) //Non-template function with same name & signature
{
cout<<"Non-template function\n";
}
int main()
{
func(4);
func(4.67);
func("TENE");
}
は '' template <>です。void func(int d) ''部分的な特殊化?部分的なものは ''テンプレートのように見えるでしょう void func (int d) ''、いいえ? '' <> ''では、型を完全に '' int''として定義しています。 –
fogbit
あなたは正しいです。コメントを編集しました。 – cppcoder
おそらく、どのエラーが予想されたのか、その理由を記述することができます。 – MSalters