AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > VC编程

正确地调用字符串相关的函数(第一部分)

51自学网 2015-08-30 http://www.wanshiok.com

 

template< class CharType, class ReturnType, class CharFunction, class WchartFunction, class Param1, class Param2>
ReturnType string_function_2params(
CharFunction funcChar,
WchartFunction funcWchart,
Param1 param1,
Param2 param2)
{
return string_function_2params_helper< CharType, ReturnType, CharFunction, WchartFunction, Param1>(
funcChar, funcWchart, param1, param2, ( const CharType *)NULL);
}



/////////////////////////////////////////////////////////
// three parameters

template< class CharType, class ReturnType, class CharFunction, class WchartFunction, class Param1, class Param2, class Param3>
ReturnType string_function_3params_helper(
CharFunction funcChar,
WchartFunction funcWchart,
Param1 param1,
Param2 param2,
Param3 param3, const wchar_t *)
{
return funcWchart( param1, param2, param3);
}

template< class CharType, class ReturnType, class CharFunction, class WchartFunction, class Param1, class Param2, class Param3>
ReturnType string_function_3params_helper(
CharFunction funcChar,
WchartFunction funcWchart,
Param1 param1,
Param2 param2,
Param3 param3, ...)
{
return funcChar( param1, param2, param3);
}


template< class CharType, class ReturnType, class CharFunction, class WchartFunction, class Param1, class Param2, class Param3>
ReturnType string_function_3params(
CharFunction funcChar,
WchartFunction funcWchart,
Param1 param1,
Param2 param2,
Param3 param3)
{
return string_function_3params_helper< CharType, ReturnType, CharFunction, WchartFunction, Param1>(
funcChar, funcWchart, param1, param2, param3, ( const CharType *)NULL);
}

/////////////////////////////////////////////////////////
// four parameters

template< class CharType, class ReturnType, class CharFunction, class WchartFunction, class Param1, class Param2, class Param3, class Param4>
ReturnType string_function_4params_helper(
CharFunction funcChar,
WchartFunction funcWchart,
Param1 param1,
Param2 param2,
Param3 param3,
Param4 param4, const wchar_t *)
{
return funcWchart( param1, param2, param3, param4);
}

template< class CharType, class ReturnType, class CharFunction, class WchartFunction, class Param1, class Param2, class Param3, class Param4>
ReturnType string_function_4params_helper(
CharFunction funcChar,
WchartFunction funcWchart,
Param1 param1,
Param2 param2,
Param3 param3,
Param4 param4, ...)
{
return funcChar( param1, param2, param3, param4);
}


template< class CharType, class ReturnType, class CharFunction, class WchartFunction, class Param1, class Param2, class Param3, class Param4>
ReturnType string_function_4params(
CharFunction funcChar,
WchartFunction funcWchart,
Param1 param1,
Param2 param2,
Param3 param3,
Param4 param4)
{
return string_function_4params_helper< CharType, ReturnType, CharFunction, WchartFunction, Param1>(
funcChar, funcWchart, param1, param2, param3, param4, ( const CharType *)NULL);
}

/////////////////////////////////////////////////////////
// five parameters

template< class CharType, class ReturnType, class CharFunction, class WchartFunction, class Param1, class Param2, class Param3, class Param4, class Param5>
ReturnType string_function_5params_helper(
CharFunction funcChar,
WchartFunction funcWchart,
Param1 param1,
Param2 param2,
Param3 param3,
Param4 param4,
Param5 param5, const wchar_t *)
{
return funcWchart( param1, param2, param3, param4, param5);
}

template< class CharType, class ReturnType, class CharFunction, class WchartFunction, class Param1, class Param2, class Param3, class Param4, class Param5>
ReturnType string_function_5params_helper(
CharFunction funcChar,
WchartFunction funcWchart,
Param1 param1,
Param2 param2,
Param3 param3,
Param4 param4,
Param5 param5, ...)
{
return funcChar( param1, param2, param3, param4, param5);
}


template< class CharType, class ReturnType, class CharFunction, class WchartFunction, class Param1, class Param2, class Param3, class Param4, class Param5>
ReturnType string_function_5params(
CharFunction funcChar,
WchartFunction funcWchart,
Param1 param1,
Param2 param2,
Param3 param3,
Param4 param4,
Param5 param5)
{
return string_function_5params_helper< CharType, ReturnType, CharFunction, WchartFunction, Param1>(
funcChar, funcWchart, param1, param2, param3, param4, param5, ( const CharType *)NULL);
}

 
 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。

上一篇:从赋值运算符的默认实现中获益(第二部分)  下一篇:正确地调用字符串相关的函数(第二部分)