Maybe libMesh::UniquePtr should be one of our "stuff from C++11 to shim or reimplement" targets?  We can't give it a move constructor in C++03, naturally, but it would still be usable as a local variable, just not as an argument or return value.  On the other hand, we wouldn't want C++11 users to try to use it in moves only to discover that their code broke on others' systems with older compilers.