https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69717
--- Comment #2 from Daniel Krügler <daniel.kruegler at googlemail dot com> ---
This is fixed in the current trunk (Tested on gcc HEAD 6.0.0 20160207
(experimental)). Btw.: Your test case is confusing. A better test case would be
the following one, where the static assertion tests the expected outcome:
#include <type_traits>
#include <utility>
struct S {
S(int) {}
};
int main() {
using pair_t = std::pair<S, S>;
static_assert(!std::is_default_constructible<pair_t>::value, "");
}