I found this discussion after I ran into a similar problem with resize() not working for a default-constructible type. It seems like the gcc vector implementation is incorrect.
FYI, I filed a bug against gcc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64147