C ++ 11类型的别名很棒我使用它很多但最近我一直想知道为什么类型别名不能这样工作:
#include <iostream>
template<typename T>
class Y
{
public:
Y(): t( T{} ) {}
T getT() const;
private:
T t;
};
template< typename T>
using Foo = Y<T>;
template< typename T>
T Y<T>::getT() const { return t; } //FINE
/* NOT FINE!
template< typename T>
T Foo<T>::getT() const { return t; }
*/
int main()
{
Y<int> f{};
return 0;
}
问题:
如果某个类型有别名,为什么我们不能用新别名替换别名类型?