#include <iostream>
#include <vector>

template <typename T, template<class...> class Container>
struct A
{
  using Ttype = T;
  using ContainerType = Container;

  Container<T> s;
};

int main()
{
  using S = A<int, std::vector>;

  S::ContainerType<double> y;
  y.push_back(2);

  return 0;
}