模板函数的默认类型假设

Aqu*_*irl 2 c++ templates

示例:假设f是模板函数,有两个参数:

f (1, 2)在这个调用中,模板函数是否假设它的参数是int,或者是short什么?

编辑1:

模板函数声明:

template <typename dataTypeA, typename dataTypeB> dataTypeB functionX (dataTypeA argA, dataTypeB argB)

Dav*_*eas 7

模板不承担任何责任.文字是类型的int,这将是编译器推导出的类型.

  • @Anisha:不,你的源代码中写的*literal*`1`有一个类型,那个类型是`int`.如果你写'1u`,那么类型是`unsigned int`,'1l`是`long int`等.我不认为有一个`short`字面值. (3认同)
  • @Anisha:不,不,你误解了.功能定义确实无关紧要.但功能模板声明非常有用.根据你的问题,你的函数模板可能是`template <typename T> char foo(T,int)`,`template <typename T> bool foo(T,T)`,甚至`template <typename T> T foo (int,int)`,并且没有办法知道,而且它们都有不同的答案.我猜到了最有可能的一个,但你可以在问题中明确这一点. (2认同)