我想写一个函数调用几个子函数并返回这些子函数的结果。如何写一个函数返回一个返回类型的子函数
sub functions:
template<class A> A sub1(A a)
template<class B> B sub2(B b, int i)
template<class C> C sub3(C c, string p)
该函数将在switch语句中相应地调用这些函数。 对不起,我只有伪代码,因为我对这个问题感到困惑,并没有开始写代码。
mf(string s)
{
int k;
k = process(s)
string
switch (k){
case 0:
return sub1(k);
case 1:
return sub2(s, k);
case 2:
return sub3(k, s);
default:
break;
}
}
如何定义mf以上,因为现在没有返回类型?再次使用模板?顺便说一句,我的C++编译器不支持我不太熟悉的C++ 11标准。
如果他们只是简单的功能,为什么你需要使用模板?好像矫枉过正我 – FaddishWorm
您可以返回[Boost.Variant(http://www.boost.org/doc/html/variant.html),这将让你返回不同类型,甚至一个空类型,请打破的情况下(使用'升压:: empty'作为类型之一。 – Xeo