template <typename>
struct B
{
constexpr static int T = 5;
};
template <int T>
struct D : B<int>
{
constexpr static int value = T;
};
int main()
{
std::cout << D<7>::value << std::endl; // 5, how to get 7 ?
}
Демонстрация
Поскольку я недавно узнал, что параметры шаблона производного класса шаблона проверяются после имен в базовом классе во время поиска.При этом, существует ли в любом случае квалификация имени T
инициализация value
для ссылки на параметр шаблона T
производного класса?
РЕДАКТИРОВАНИЕ:
Пока что из обсуждений в комментариях не кажется, что единственный способ достичь этого - сделать зависимость типа / значения базового класса, что приведет к задержке поиска имен базы (к фазе создания экземпляра) и, таким образом, к созданию единственногодоступное значение для T - параметр шаблона.