The patch is incomplete.
Clang is correct that the code is wrong: The copy constructor should be deleted because std::pair
declares a move constructor, but that's because clang is implementing the final C++11 rules and the GCC 4.4 headers are written to work with an earlier version of the C++0x draft, as supported by GCC 4.4
You should be able to fix it by adding this to std::pair
:
pair(const pair&) = default;
pair& operator=(const pair&) = default;
That restores the implicitly-defined copy operations, so Clang won't delete them.