llvm-project/libcxx
Peter Collingbourne 8845dbd798 Do not derive __gnu_cxx::hash<T> from std::hash<T>.
Instead, define explicit specializations for the basic types listed in
the SGI documentation. This solves two problems:

 1) Helps avoid silent ODR violations caused by the absence of a
    user-supplied __gnu_cxx::hash specialization in cases where a std::hash
    specialization exists (e.g. for std::string).

 2) __gnu_cxx::hash semantics are slightly different to those of
    std::hash (for example, the former may dereference a pointer argument)
    so it is inappropriate for __gnu_cxx::hash to receive std::hash
    specializations by default.

Differential Revision: http://llvm-reviews.chandlerc.com/D2747

llvm-svn: 203070
2014-03-06 04:11:10 +00:00
..
cmake Explicitly specify -Wno-error if LIBCXX_ENABLE_WERROR is false. 2013-10-02 07:44:19 +00:00
include Do not derive __gnu_cxx::hash<T> from std::hash<T>. 2014-03-06 04:11:10 +00:00
lib Whoops! Set the default in the last commit to c++1y instead of c++11 2014-01-14 17:04:06 +00:00
src Adjust build fix from r199494 to use C++ casts 2014-01-17 16:17:24 +00:00
test Do not derive __gnu_cxx::hash<T> from std::hash<T>. 2014-03-06 04:11:10 +00:00
www Implement LWG #2212: std::is_final. This requires compiler support, which modern versions of clang provide. Also mark LWG #2230 as complete - no code changes needed. 2014-03-05 03:39:25 +00:00
.arcconfig Add a simple .arcconfig to make using the 'arc' commandline tool and the 2012-12-31 05:59:45 +00:00
CMakeLists.txt Justin Bogner: This makes the headers available in the build directory, making it 2013-11-15 17:18:57 +00:00
CREDITS.TXT Updated my role 2013-09-28 01:25:55 +00:00
LICENSE.TXT Update the copyright credits -- Happy new year 2014! 2014-01-01 08:27:31 +00:00
Makefile Don't install CMakeLists.txt along with the headers. 2014-02-26 17:14:09 +00:00