Замена имени класса псевдонимом

Псевдоним типа 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;
}

Вопрос:

Если тип является псевдонимом, почему мы не можем заменить тип псевдонимом новым псевдонимом?

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]