【发布时间】:2020-03-26 13:50:21
【问题描述】:
长话短说,我写了一段代码,如下所示。这个 sn-p 包括一个两种类型的模板类。它的名字是Num。
#include <iostream>
using namespace std;
template <typename N, typename U>
class Num
{
public:
Num(): num0(3), num1(4.56)
{
cout << "This is number: " << num0 << endl;
cout << "This is number: " << num1 << endl;
}
private:
N num0;
U num1;
};
int main()
{
Num<int, double> num();
return 0;
}
代码工作正常,但出于某种原因,我需要在传递给类实例时包装类型。更清楚地说,而不是:
Num<int, double> num();
我需要这样的东西:
Num<(int, double)> num();
当您输入要测试的类型作为 TYPED_TEST_CASE 宏时,我希望它在 google typed-test 中测试两个类型的类。
【问题讨论】:
-
Isn't
Num<(int, double)> num();相当于Num<double> num();,这应该会给你的类一个编译器错误。 -
您可以将其作为函数类型传递,例如
void (int, double),然后从那里提取参数类型。