Is there a requirement in C++ that
sizeof(std::vector<T>) == sizeof(std::vector<S>)
where S and T are arbitrary copy-assignable and copy-constructible types? For example, on my 64-bit Windows laptop with GCC we have
sizeof(std::vector<int>) ==
sizeof(std::vector<std::tuple<std::vector<double>,
int, std::map<int, std::string> > >)
== 24