2

我想要一个模板类根据传递给构造函数的类类型自动选择它的参数。对象已经有类型。

InputA a;
InputA a2;
InputB b;

这些类型应该被构造函数理解

out<>(a) out; 

out<InputA>(a) out;

.

out<>(a2) out;

out<InputA>(a2) out; 

.

out<>(b) out;

out<InputB>(b) out;

当可以从输入参数的类型中提取模板参数(策略)时,定义模板参数(策略)似乎是多余的。

4

1 回答 1

7

这与std::pair. 此问题的标准解决方法是定义模板工厂(如std::make_pair())。

例如

template<class policy>
out<policy> make_out(policy p)
{
    return out<policy>(p);
}

auto o = make_out(a);
于 2012-03-08T18:56:38.640 回答