我将通过"C++模板:完整指南(第二版)",第10页.
根据本书,模板参数推导不考虑返回类型.
模板演绎可以看作是重载决策的一部分.不基于选择返回类型的进程.唯一的例外是转换运算符成员的返回类型
任何示例都将有助于在演绎中考虑返回类型.
struct A {
int value;
//conversion operator
template<class T>
operator T() {return static_cast<T>(value);}
};
A a{4};
float f = a; //conversion from A to float
Run Code Online (Sandbox Code Playgroud)