> > void push_back(T &&t) { > ensureCapacity(size() + 1); > new (m_end) T(std::move(t)); // move-construct from t > ++m_end; why is std::move needed here? Afaik std::move(t) converts t into a rvalue ref, but t is already an r-value ref. Regards, Gunnar Roth