llvm-project/libcxx
Eric Fiselier 9743af6e31 Replace __make_tuple_indices implementation with superior implementation.
The previous __make_tuple_indices implementation caused O(N) instantiations
and was pretty inefficient. The C++14 __make_integer_sequence implementation
is much better, since it either uses a builtin to generate the sequence or
a very nice Log8(N) implementation provided by richard smith.

This patch moves the __make_integer_sequence implementation into __tuple
and uses it to implement __make_tuple_indices.

Since libc++ can't expose the name 'integer_sequence' in C++11 this patch
also introduces a dummy type '__integer_sequence' which is used when generating
the sequence. One the sequence is generated '__integer_sequence' can be
converted into the required type; either '__tuple_indices' or 'integer_sequence'.

llvm-svn: 274286
2016-06-30 22:34:43 +00:00
..
cmake [CMake] Cleanup uses of USES_TERMINAL 2016-06-08 22:20:28 +00:00
docs Add Filesystem TS -- Complete 2016-06-17 19:46:40 +00:00
include Replace __make_tuple_indices implementation with superior implementation. 2016-06-30 22:34:43 +00:00
lib Add Filesystem TS -- Complete 2016-06-17 19:46:40 +00:00
src [libcxx] Fix a bug in strstreambuf::overflow. 2016-06-29 15:26:13 +00:00
test Fix static assert problem on gcc; remove XFAILs that I put in in r274250 2016-06-30 22:05:45 +00:00
utils Add more missing license headers 2016-01-19 21:58:49 +00:00
www Mark issues 2550, 2551, 2555, 2685, 2698 as complete. These issues are wording clarifications; no code changes required. 2016-06-30 18:05:19 +00:00
.arcconfig Update Arcanist config to point to reviews.llvm.org 2014-06-10 18:29:36 +00:00
.gitignore [libc++] Refactor test components into modules. 2015-01-09 18:03:29 +00:00
CMakeLists.txt Add -Wno-covered-switch-default while compiling libc++ 2016-06-18 18:55:18 +00:00
CREDITS.TXT Add entry to CREDITS.TXT for propagate_const 2016-06-19 19:36:28 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:39:53 +00:00
TODO.TXT Test commit to see if libcxx.llvm.org/docs builds 2015-09-04 22:57:00 +00:00