summaryrefslogtreecommitdiffstats
path: root/libcxx/test/utilities/tuple/tuple.tuple/tuple.cnstr
Commit message (Collapse)AuthorAgeFilesLines
* Flush out test cases for tuples constructor SFINAEEric Fiselier2014-11-182-23/+132
| | | | llvm-svn: 222278
* [libcxx] Delay evaluation of __make_tuple_types to prevent blowing the max ↵Eric Fiselier2014-10-281-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | template instantiation depth. Fixes Bug #18345 Summary: http://llvm.org/bugs/show_bug.cgi?id=18345 Tuple's constructor and assignment operators for "tuple-like" types evaluates __make_tuple_types unnecessarily. In the case of a large array this can blow the template instantiation depth. Ex: ``` #include <array> #include <tuple> #include <memory> typedef std::array<int, 1256> array_t; typedef std::tuple<array_t> tuple_t; int main() { array_t a; tuple_t t(a); // broken t = a; // broken // make_shared uses tuple behind the scenes. This bug breaks this code. std::make_shared<array_t>(a); } ``` To prevent this from happening we delay the instantiation of `__make_tuple_types` until after we perform the length check. Currently `__make_tuple_types` is instantiated at the same time that the length check . Test Plan: Two tests have been added. One for the "tuple-like" constructors and another for the "tuple-like" assignment operator. Reviewers: mclow.lists, EricWF Reviewed By: EricWF Subscribers: K-ballo, cfe-commits Differential Revision: http://reviews.llvm.org/D4467 llvm-svn: 220769
* Fixes PR21157 'tuple: non-default constructible tuple hard failure' Thanks ↵Marshall Clow2014-10-153-0/+56
| | | | | | to Louis Dionne for the bug report and the patch. llvm-svn: 219785
* D4451: Fix copy/move issues casude by __tuple_leafs's converting constructorEric Fiselier2014-07-242-0/+71
| | | | llvm-svn: 213888
* Found two identical files named 'allocators.h' in the libcxx test suite. ↵Marshall Clow2013-12-029-9/+9
| | | | | | Moved one to /support, removed the other, and iupdated all the includes. No functionality change llvm-svn: 196127
* Found two identical files named 'DefaultOnly.h' in the libcxx test suite. ↵Marshall Clow2013-12-022-2/+2
| | | | | | Moved one to /support, removed the other, and iupdated all the includes. No functionality change llvm-svn: 196118
* Make tuple's constructor and std::get<>(tuple) constexpr. Final stage of ↵Marshall Clow2013-07-225-0/+100
| | | | | | fixing bug #16599. Thanks to Howard for the review and updates. llvm-svn: 186834
* Accidentally disallowed explicit tuple conversions when all elements of the ↵Howard Hinnant2013-04-141-0/+9
| | | | | | tuple can be explicitly converted. llvm-svn: 179467
* Give tuple a constexpr default constructor.Howard Hinnant2012-07-061-0/+14
| | | | llvm-svn: 159857
* I believe tuple is still under development in the standard. Daniel Krugler ↵Howard Hinnant2012-04-012-4/+25
| | | | | | is/will be making convincing arguments that a modified form of LWG 2051 (currently NAD Future) is easily acheivable and desirable. He has demonstrated that a tuple<T...> where all of the T are implicitly convertible from U... should have a tuple constructor that is also implicit, instead of explicit. This would support the use cases in LWG 2051 while not undermining T... with explicit conversions from U.... This check-in is an experimental implementation of Daniel's work. I believe this work to be mature enough to warrant inclusion into libc++. If anyone sees real-world problems that this check in causes, please let me know and I will revert it, and provide the feedback to the LWG. llvm-svn: 153855
* tuple was accidentally lacking a valid copy assignment operator. It went ↵Howard Hinnant2012-02-151-1/+1
| | | | | | undetected because I had failed to test assigning from a const lvalue. This fixes http://llvm.org/bugs/show_bug.cgi?id=11921 llvm-svn: 150613
* license changeHoward Hinnant2010-11-1622-44/+44
| | | | llvm-svn: 119395
* Fixing whitespace problemsHoward Hinnant2010-08-223-5/+3
| | | | llvm-svn: 111767
* Wiped out some non-ascii characters that snuck into the copyright.Howard Hinnant2010-05-1122-22/+22
| | | | llvm-svn: 103516
* libcxx initial importHoward Hinnant2010-05-1122-0/+1233
llvm-svn: 103490
OpenPOWER on IntegriCloud