我需要找到某种方法来模拟 C++ 中函数返回类型的重载。
我知道没有办法直接做到这一点,但我希望有一些开箱即用的方法。我们正在创建一个供用户使用的 API,他们将传入一个数据字符串,该字符串根据字符串信息检索值。这些值是不同的类型。本质上,我们想让他们这样做:
int = RetrieveValue(dataString1);
double = RetrieveValue(dataString2);
// Obviously, since they don't know the type, they wouldn't use int =.... It would be:
AnotherFunction(RetrieveValue(dataString1)); // param of type int
AnotherFunction(RetrieveValue(dataString2)); // param of type double
但这在 C++ 中不起作用(显然)。现在,我们正在对其进行设置,以便他们调用:
int = RetrieveValueInt(dataString1);
double = RetrieveValueDouble(dataString2);
但是,我们不希望他们知道他们的数据字符串的类型是什么。
不幸的是,我们不允许使用外部库,所以不要使用 Boost。
我们有什么办法可以解决这个问题吗?
澄清一下,我知道 C++ 本身无法做到这一点。但必须有某种方法可以绕过它。比如我想过做RetrieveValue(dataString1, GetType(dataString1))。这并不能真正解决任何问题,因为 GetType 也只能有一种返回类型。但我需要这样的东西。
我知道以前有人问过这个问题,但意义不同。我不能使用任何明显的答案。我需要一些完全开箱即用的东西才能对我有用,而另一个问题中的任何答案都不是这种情况。