¿No debería std :: pair <T1, T2> tener un constructor trivial predeterminado si T1 y T2 tienen?

Me encontré con un problema porque

 std::is_trivially_default_constructible<std::pair<T1,T2>>::value == false;

incluso si

 std::is_trivially_default_constructible<T1>::value == true;
 std::is_trivially_default_constructible<T2>::value == true;

No pude encontrar una buena razón para este diseño. ¿No sería apropiado parastd::pair<T1,T2>&nbsp;tener un=default&nbsp;constructor siT1&nbsp;yT2&nbsp;¿tener?

¿Hay una solución simple (más simple que definir la mía)pair<>)?