【发布时间】:2018-07-18 09:41:55
【问题描述】:
我可以为具有多个模板参数的类使用用户定义的推导指南吗?我希望从构造函数参数中推导出一个指定的模板参数。构造类时,必须在<>-括号中指定所有其他模板参数。示例:
#include <iostream>
template<typename T, typename A>
struct Hello
{
Hello(T x) : x(x) {}
T x;
A y;
};
Hello<A>(int) -> Hello<int, A>; // This is not a valid syntax but shows what i want to do
int main()
{
Hello h = Hello<float>((int)1); // this should be deduced to Hello<int, float>
std::cout << h.x << std::endl;
return 0;
}
【问题讨论】:
-
恕我直言,这个解决方案在提供的情况下不起作用:有两个模板参数,只有一个在构造函数中;用户在其问题中没有提到 C++-17,所以它可能不可用。请撤销重复标记。
标签: c++ templates template-argument-deduction