libcxx initial import

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103490 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Howard Hinnant
2010-05-11 19:42:16 +00:00
commit bc8d3f97eb
3893 changed files with 1209942 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
//===----------------------------------------------------------------------===//
//
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <typeindex>
// class type_index
// template <>
// struct hash<type_index>
// : public unary_function<type_index, size_t>
// {
// size_t operator()(type_index index) const;
// };
#include <typeindex>
#include <cassert>
int main()
{
std::type_index t1 = typeid(int);
assert(std::hash<std::type_index>()(t1) == t1.hash_code());
}

View File

@@ -0,0 +1,22 @@
//===----------------------------------------------------------------------===//
//
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <typeindex>
// class type_index
// type_index(const type_info& rhs);
#include <typeindex>
#include <cassert>
int main()
{
std::type_index t1 = typeid(int);
}

View File

@@ -0,0 +1,27 @@
//===----------------------------------------------------------------------===//
//
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <typeindex>
// class type_index
// bool operator==(const type_index& rhs) const;
// bool operator!=(const type_index& rhs) const;
#include <typeindex>
#include <cassert>
int main()
{
std::type_index t1 = typeid(int);
std::type_index t2 = typeid(int);
std::type_index t3 = typeid(long);
assert(t1 == t2);
assert(t1 != t3);
}

View File

@@ -0,0 +1,24 @@
//===----------------------------------------------------------------------===//
//
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <typeindex>
// class type_index
// size_t hash_code() const;
#include <typeindex>
#include <cassert>
int main()
{
const std::type_info& ti = typeid(int);
std::type_index t1 = typeid(int);
assert(t1.hash_code() == ti.hash_code());
}

View File

@@ -0,0 +1,35 @@
//===----------------------------------------------------------------------===//
//
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <typeindex>
// class type_index
// bool operator< (const type_index& rhs) const;
// bool operator<=(const type_index& rhs) const;
// bool operator> (const type_index& rhs) const;
// bool operator>=(const type_index& rhs) const;
#include <typeindex>
#include <cassert>
int main()
{
std::type_index t1 = typeid(int);
std::type_index t2 = typeid(int);
std::type_index t3 = typeid(long);
assert(!(t1 < t2));
assert( (t1 <= t2));
assert(!(t1 > t2));
assert( (t1 >= t2));
assert(!(t1 < t3));
assert(!(t1 <= t3));
assert( (t1 > t3));
assert( (t1 >= t3));
}

View File

@@ -0,0 +1,25 @@
//===----------------------------------------------------------------------===//
//
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <typeindex>
// class type_index
// const char* name() const;
#include <typeindex>
#include <string>
#include <cassert>
int main()
{
const std::type_info& ti = typeid(int);
std::type_index t1 = typeid(int);
assert(std::string(t1.name()) == ti.name());
}

View File

@@ -0,0 +1,26 @@
//===----------------------------------------------------------------------===//
//
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <typeindex>
// class type_index
// type_index& operator=(const type_index& ti);
#include <typeindex>
#include <cassert>
int main()
{
std::type_index t1(typeid(int));
std::type_index t2(typeid(double));
assert(t2 != t1);
t2 = t1;
assert(t2 == t1);
}

View File

@@ -0,0 +1,24 @@
//===----------------------------------------------------------------------===//
//
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <typeindex>
// class type_index
// type_index(const type_index& ti);
#include <typeindex>
#include <cassert>
int main()
{
std::type_index t1(typeid(int));
std::type_index t2 = t1;
assert(t2 == t1);
}

View File

@@ -0,0 +1,25 @@
//===----------------------------------------------------------------------===//
//
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <typeindex>
// struct hash<type_index>
// : public unary_function<type_index, size_t>
// {
// size_t operator()(type_index index) const;
// };
#include <typeindex>
#include <type_traits>
int main()
{
static_assert((std::is_base_of<std::unary_function<std::type_index, std::size_t>,
std::hash<std::type_index> >::value), "");
}

View File

@@ -0,0 +1,20 @@
//===----------------------------------------------------------------------===//
//
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <typeindex>
#include <typeindex>
#ifndef _LIBCPP_VERSION
#error _LIBCPP_VERSION not defined
#endif
int main()
{
}