【发布时间】:2018-05-27 23:17:13
【问题描述】:
我有两个调用外部库函数的函数,除了一个有两个额外参数(假设额外参数始终为零)。
void func1(int a, int b)
{
libDoAThing(a, b);
}
void func1Special(int a, int b)
{
libDoAThingWithTwoExtraParams(a, b, 0, 0);
}
有没有办法将这些方法组合成一个可以这样调用的方法:
func1<libDoAThing>{10, 10};
func1<libDoAThingWithTwoExtraParams>{10, 10};
我不确定如何处理模板时函数调用中的两个额外参数。
【问题讨论】:
-
这看起来像是一个 XY 问题。您要解决的真正问题是什么。不是,不是关于“组合这些方法”的问题,而是您认为解决方案的真正问题涉及拥有此类单一模板函数。
-
这是一位同事向我建议的解决方案。我问这个问题是因为我不知道如何在技术上实现它。
-
解决方案到底是什么?与其假设这是解决方案,并试图弄清楚如何去做,不如描述真正的问题更有意义。很可能存在一种完全不同的方法,它更简单、更直接。
-
我不同意你的观点,可能有更好的整体解决方案来解决这个问题。但是,我对如何以代码方式完成这一点很感兴趣,因为我不知道如何做到这一点。这更像是“我将如何编码?”而不是“我的情况的最佳解决方案是什么?”问题。
标签: c++ templates overloading