|In what ways is g++ still struggling? |
g++'s core language features caught up (as in, the both miss about the same number of features and claim feature completeness), it's struggling in the library department.
The big one for most people was of course the regex library, but that was implemented 3 months ago, 7 years late (It predates C++11: it was a TR1 component, like <array>). I haven't had a chance to really test it, but I did see some regex_traits parts missing when reviewing the trunk.
The big one for me is that it's still missing the entire <codecvt> which houses all of C++11 Unicode library functionality, along with string and buffer conversions (MS and Clang both had that in 2010 in their respective libraries).
It's also missing quite a few smaller C++11 items: streams aren't movable, threads miss everything having to do with thread exit, atomics miss shared_ptr specializations, some type traits aren't there, some allocator support isn't there, etc. Even something as trivial as std::align is not in.
All of that is in clang's library: it's complete for C++11 and C++14 as currently drafted (except where it is forced to rely on the incomplete C library, as is the case with <cuchar>)