Составил небольшой пример. Компилятор не может найти тип ref как возвращаемое значение метода getA() . Почему это происходит? И как тогда лучше писать? Спасибо.
template<class T>
class A
{
T a;
public:
using ref = const T&;
ref getA()const;
};
template<class T>
A<T>::ref A<T>::getA() const
{
return a;
}
В данном случае без указания typename
компилятор воспринимает зависимое имя ref
не как имя типа. Однако использовать typename
в данном случае совсем не обязательно, так как это имя может быть найдено в контексте этого класса. Проще и короче будет использовать хвостовой синтаксис для возвращаемого значения, это также позволит избавиться от A<T>::
.
template<class T>
class A
{
T a;
public:
using ref = const T&;
ref getA()const;
};
template<class T> auto
A<T>::getA() const -> ref
{
return a;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
При специализации шаблона под конкретный тип, общий класс используется на ура, а специализация, использующая то же определение метода, что...
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Как можно скрыть первую строку в таблице, если таблица для товара создается автоматически в админкеПробовал через js (сам новичок в этом),...
Как проверить открыто ли окно в WPF? Когда окно открыто, то при нажатии на кнопу открывается новое окноКак предотвратить это?