¿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> tener un=default constructor siT1 yT2 ¿tener?

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta