0

如何使用返回值模板对模板函数进行专门化?

我试过这个:

myfunc.h:

#pragma once

template< >
int MyFunc<int>(){
   return 10;
}

主.cpp:

#include "myfunc.h"

int main()
{
    int a;
    a = MyFunc<int>();
    return 0;
}

但我有错误:“<”标记之前的预期初始化程序

4

3 回答 3

4

在您声明您的专业之前,您缺少主要模板。

template<typename> int func() { return 42; }

template<> int func<int>() { return 23; }

请注意功能特化的问题。

于 2012-12-02T11:42:44.860 回答
2

您没有声明或定义这是一个特化的主模板。

于 2012-12-02T11:42:51.103 回答
0

我不知道你想做什么,但也许这对你有帮助:

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;
}
于 2012-12-02T20:53:19.117 回答