如何使用返回值模板对模板函数进行专门化?
我试过这个:
myfunc.h:
#pragma once
template< >
int MyFunc<int>(){
return 10;
}
主.cpp:
#include "myfunc.h"
int main()
{
int a;
a = MyFunc<int>();
return 0;
}
但我有错误:“<”标记之前的预期初始化程序
在您声明您的专业之前,您缺少主要模板。
template<typename> int func() { return 42; }
template<> int func<int>() { return 23; }
请注意功能特化的问题。
您没有声明或定义这是一个特化的主模板。
我不知道你想做什么,但也许这对你有帮助:
template<typename T>
int MyFunc(){
return 0;
}
template<>
int MyFunc<int>(){
return 10;
}
template<>
int MyFunc<char>(){
return 100;
}
using namespace std;
int main()
{
cout << MyFunc<int>() << endl << MyFunc<char>() << endl;
system("pause");
return 0;
}