首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于c++函数模版解决方法

2012-08-03 
关于c++函数模版C/C++ codetemplatetypename returnType,typename parameterTypereturnType * strCuter(

关于c++函数模版

C/C++ code
template<typename returnType,typename parameterType>returnType * strCuter(parameterType* str,parameterType* identifier,int s_length,int i_length,bool isLeft){    int i=0,temp_i=0;    parameterType* temp=new parameterType[s_length];    while(i<s_length)    {        temp[temp_i]=str[i];        i++;        if(temp[temp_i]!=identifier[temp_i])  //如果在临时字符串中有与标识字符串中不相符的字符,则移动索引至0            temp_i=0;                                    else if(temp[temp_i]==identifier[temp_i]&&temp_i<i_length-1)            temp_i++;        else if(temp[temp_i]==identifier[temp_i]&&temp_i==(i_length-1))        {            if(isLeft==true)            {                int target_i=i-i_length;                for(i=0;i<target_i;i++)                    temp[i]=str[i];                temp[i]=NULL;                realloc(temp,target_i+1);               }            else                temp=&str[i];            return temp;        }    }    return NULL;}下面,我想定义三个函数,用typedef不行,用#define也会报错?我应该怎么做?#define strCuter<TCHAR,TCHAR> strCuterT_F#define strCuter<wchar_t,wchar_t> strCuterW_F#define strCuter<char,char> strCuterA_F


[解决办法]
C/C++ code
template char* strCuter<char,char>(char*,char*,int,int,bool);
[解决办法]
探讨
C/C++ code

template char* strCuter<char,char>(char*,char*,int,int,bool);


其他的以此类推。

[解决办法]
你是否想定义别名?
如果strCuter是类就这样定义
typedef strCuter<TCHAR,TCHAR> strCuterT_F;
strCuter是函数,
#define strCuterT_F strCuter<TCHAR,TCHAR> 
使用的时候strCuterT_F ();
在与编译的时候会恢复成strCuter<TCHAR,TCHAR> ();

热点排行