小编fla*_*ger的帖子

分离类模板中的参数包

我正在尝试编写一个类模板,该模板使用参数包并为参数包中包含的每种类型实现一个成员函数。

这是我到目前为止:

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)成员函数。

我在网上找到了很多关于参数包可用性的例子,但我不知道它是否可以用于我的目的,或者我是否完全误解了参数包的用途。

我以为我需要解包参数包,但在阅读了很多关于解包参数包的示例后,我认为这不是正确的选择,它具有完全不同的含义。

因此,因此,我正在寻找一种“离婚”参数包的操作。

c++ templates class variadic parameter-pack

2
推荐指数
1
解决办法
82
查看次数

标签 统计

c++ ×1

class ×1

parameter-pack ×1

templates ×1

variadic ×1