Какой именно идентификатор типа правильно называть dependent scope type?

В C++, идентификатор типа, который правильно называется "dependent scope type", обычно означает тип, зависящий от контекста и позволяющий разрешать имена в зависимости от своего контекста.

В C++, обычно различают два типа зависимых типов: зависимые от шаблонных параметров типы (template-dependent types) и зависимые от имени типы (name-dependent types).

1. Зависимые от шаблонных параметров типы (template-dependent types) - это типы, которые зависят от значений передаваемых в шаблон. Например, если у вас есть шаблонная функция, которая принимает два аргумента типа T и N, исходя из которых вы хотите определить тип возвращаемого значения, то тип возвращаемого значения будет зависеть от конкретного значения параметра N. Это связано с тем, что тип возвращаемого значения должен быть определен только при компиляции программы с конкретными значениями шаблонных параметров.

2. Зависимые от имени типы (name-dependent types) - это типы, которые зависят от контекста, в котором используются. Например, если у вас есть функция-член класса, и она обращается к типу, который связан с классом или пространством имён, то этот тип может считаться зависимым от имени. Зависимый тип может быть определен внутри шаблонов, функций или классов.

Зависимые типы могут вызывать некоторые сложности при компиляции программы, поскольку их действительный тип может быть неопределен во время компиляции и может зависеть от контекста.

Для того чтобы упростить такие ситуации, C++ предоставляет механизм использования ключевого слова "typename" или "class" при работе с зависимыми типами. Это позволяет компилятору определить, что идентификатор относится к типу, а не, например, к статическому члену или константе. Объявления с такими идентификаторами, называют dependent scope type.

Таким образом, dependent scope type в C++ является идентификатором типа, который зависит от контекста, в котором он используется, и его определение определяется во время компиляции с учетом конкретного значения шаблонных параметров или контекста. Управление и разрешение зависимых типов в C++ является важным аспектом при разработке шаблонных классов и функций