在模版类型推导中,引用被推导成什么类型?
首先看一个例子
struct foo{};
template <typename T>
void bar(T)
{
typedef T& myT;
};
int main()
{
foo aFoo;
foo& rFoo(aFoo);
bar ( rFoo);
}
在这里template <typename T>void bar(T) 中,T被推导成什么类型?foo?foo&?
再看这个例子
struct foo{};
void goo(foo &)
{
}
template <typename rtType,typename ArgType>
void dee( rtType(*pf)(ArgType) )
{
typedef ArgType& myT;
}
int main()
{
dee(goo);
}
这个例子编译不成功,为什么?ArgType被推导成什么?