Зависимое имя в шаблоне в C++
Имя, которое зависит от параметра шаблона,
называют зависимым именем: компилятор
не знает, тип это или член, пока не подставит T.
Обращение к вложенному типу вроде
T::value_type в возвращаемом типе
сопровождают ключевым словом typename.
Запишем маленькую структуру с
using value_type = int и функцию,
которая читает поле, затем выведем число:
#include <iostream>
struct Node {
using value_type = int;
value_type value = 5;
};
template<typename T>
typename T::value_type read(const T& item) {
return item.value;
}
int main() {
Node node;
std::cout << read(node) << "\n";
return 0;
}
Добавьте struct Leaf с
using value_type = double и полем
value. Вызовите read для
Leaf и выведите результат.