在下面的代码中,调用者需要为函数模板提供两个类型。这可以很好地工作,但是类型'RT'和'Type'之间存在相关性。如果RT是“海事”,那么类型总是“NM”。所以我认为“类型”有点多余,也许可以删除它?我如何才能做到这一点?
template<typename RT, typename Type>
RT make_obj(Object obj)
{
return RT(
obj.value1(),
make_another_obj<Type>(obj.value2()));
}
1条答案
按热度按时间qyswt5oh1#
一个简单的例子如果RT为“海运”,则类型始终为“NM”
如果存在一对一的关系,那么你可以使用trait并删除多余的参数:
或者,
RT
类型可以直接提供type
成员别名。