EVerything - typedefs:
template<typename T>
struct Bla
{ using value_type = T; }
, :
template<typename T>
void f(const T& t)
{
typename T::value_type some_var_with_template_type;
}
:
template<template<typename> class Class, typename T>
void f(const Class<T>& c)
{
T some_var_with_template_type;
}
. , Class , ( ). Variadic:
template<template<typename, typename...> class Class, typename T, typename... ArgTypes>
void f(const Class<T, ArgTypes...>& t)
{
T some_var_of_template_type;
}
, value_type typedef .
, , .