T, U가 모두 trivially copyable 이어도
std::pair<T,U>는 trivially copyable 이 안됨.
그래서 T, U가 memcpy 돼도 얘네의 pair는 불가능함.

웃기는건 사용자가
template <typename T, typename U> struct MyPair
{ T first; U second; };
이런 식으로 만들면 얘는 trivially copyable 됨. 사용자가 5분이면 짜는 두줄짜리 코드만도 못한 쓰레기 클래스 std::pair

저게 안되는 이유는 reference도 담을 수 있게 하려다가 설계를 잘못해서인데

웃기는건 std::pair<T&, U&>랑 std::pair<T, U>& 이거는 또서로 호환 안됨. 되는게 뭐냐 시발


그래서 표준 라이브러리 제작하는 애들도 내부적으로는 pair 전혀 안쓰고 compressed_pair 씀 (boost에 있는거랑 비슷한거)