我正在尝试编写一个类模板,该模板使用参数包并为参数包中包含的每种类型实现一个成员函数。
这是我到目前为止:
template <typename...T>
class Myclass {
public:
void doSomething((Some_Operator_to_divorce?) T) {
/*
* Do Something
*/
std::cout << "I did something" << std::endl;
}
};
Run Code Online (Sandbox Code Playgroud)
我的目标是拥有一个可以按以下方式使用的类模板:
Myclass<std::string, int, double> M;
M.doSomething("I am a String");
M.doSomething(1234);
M.doSomething(0.1234);
Run Code Online (Sandbox Code Playgroud)
凡类模板机制将创建一个实现doSomething(std::string x),一个doSomething(int x)和doSomething(double x)成员函数而不是一个doSomething(std::string x, int i, double f)成员函数。
我在网上找到了很多关于参数包可用性的例子,但我不知道它是否可以用于我的目的,或者我是否完全误解了参数包的用途。
我以为我需要解包参数包,但在阅读了很多关于解包参数包的示例后,我认为这不是正确的选择,它具有完全不同的含义。
因此,因此,我正在寻找一种“离婚”参数包的操作。