d437fa5c8c 
								
							 
						 
						
							
							
								
								Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled.  Reviewed as:  https://reviews.llvm.org/D23855 .  
							
							... 
							
							
							
							llvm-svn: 279744 
							
						 
						
							2016-08-25 15:09:01 +00:00  
				
					
						
							
							
								 
						
							
								0e411641a3 
								
							 
						 
						
							
							
								
								Implement P0084r2. Changing emplace return types.  
							
							... 
							
							
							
							llvm-svn: 276230 
							
						 
						
							2016-07-21 03:20:17 +00:00  
				
					
						
							
							
								 
						
							
								dc3eb83d08 
								
							 
						 
						
							
							
								
								Always use the allocator to construct/destruct elements of a deque/vector. Fixes PR#28412. Thanks to Jonathan Wakely for the report.  
							
							... 
							
							
							
							llvm-svn: 275105 
							
						 
						
							2016-07-11 21:38:08 +00:00  
				
					
						
							
							
								 
						
							
								94f89aeec5 
								
							 
						 
						
							
							
								
								Add static_assert to set/multiset/map/multimap/forward_list/deque that the allocator's value_type match the container's value_type. vector/unordered/list/string already do this. Add tests for all the containers to verify this.  
							
							... 
							
							
							
							llvm-svn: 254119 
							
						 
						
							2015-11-26 01:24:04 +00:00  
				
					
						
							
							
								 
						
							
								906c872db9 
								
							 
						 
						
							
							
								
								Cleanup: move visibility/linkage attributes to the first declaration.  
							
							... 
							
							
							
							This change moves visibility attributes from out-of-class method
definitions to in-class declaration. This is needed for a switch to
attribute((internal_linkage)) (see http://reviews.llvm.org/D13925 )
which can only appear on the first declaration.
This change does not touch istream/ostream/streambuf. They are
handled separately in http://reviews.llvm.org/D14409 .
llvm-svn: 252385 
							
						 
						
							2015-11-07 01:22:13 +00:00  
				
					
						
							
							
								 
						
							
								65da7bc392 
								
							 
						 
						
							
							
								
								Allow deque to handle incomplete types.  
							
							... 
							
							
							
							Allow deque and deque::iterator instantiation with incomplete element
type. This is an ABI breaking change, and it is only enabled if
LIBCXX_ABI_VERSION >= 2 or LIBCXX_ABI_UNSTABLE=ON.
llvm-svn: 252350 
							
						 
						
							2015-11-06 22:02:29 +00:00  
				
					
						
							
							
								 
						
							
								c45b673d5d 
								
							 
						 
						
							
							
								
								Fix warnings in deque tests  
							
							... 
							
							
							
							llvm-svn: 242632 
							
						 
						
							2015-07-19 00:31:54 +00:00  
				
					
						
							
							
								 
						
							
								e3fbe1433b 
								
							 
						 
						
							
							
								
								Implement the first part of N4258: 'Cleaning up noexcept in the Library'. This patch deals with swapping containers, and implements a more strict noexcept specification (a conforming extension) than the standard mandates.  
							
							... 
							
							
							
							llvm-svn: 242056 
							
						 
						
							2015-07-13 20:04:56 +00:00  
				
					
						
							
							
								 
						
							
								b41e76bb0b 
								
							 
						 
						
							
							
								
								Fix PR#23767. Add tests for iterator invalidation for deque::erase/pop_front/pop_back  
							
							... 
							
							
							
							llvm-svn: 239196 
							
						 
						
							2015-06-05 22:34:19 +00:00  
				
					
						
							
							
								 
						
							
								1f508014df 
								
							 
						 
						
							
							
								
								In many places, there was an #ifdef/#else block that selected one of two implmentations of rebind_alloc based on whether or not we had template aliases. Create a helper struct to encapsulate that bit of logic, and replace all the ifdefs with uses of that struct. No functionality change intented.  
							
							... 
							
							
							
							llvm-svn: 234296 
							
						 
						
							2015-04-07 05:21:38 +00:00  
				
					
						
							
							
								 
						
							
								f4903afd93 
								
							 
						 
						
							
							
								
								Fix an exception-safety bug in <deque>. Reference: PR#22650. Not closing the bug because there's more work to do here  
							
							... 
							
							
							
							llvm-svn: 231672 
							
						 
						
							2015-03-09 17:08:51 +00:00  
				
					
						
							
							
								 
						
							
								b5d34aa419 
								
							 
						 
						
							
							
								
								Move the default template arguments into the forward declarations for the containers: deque, forwardlist and list. References PR#22605.  
							
							... 
							
							
							
							llvm-svn: 229705 
							
						 
						
							2015-02-18 17:24:08 +00:00  
				
					
						
							
							
								 
						
							
								f15d7a5882 
								
							 
						 
						
							
							
								
								Fix PR#22284. Add a new overload to deque::insert to handle forward iterators. Update tests to exercise this case.  
							
							... 
							
							
							
							llvm-svn: 226847 
							
						 
						
							2015-01-22 18:33:29 +00:00  
				
					
						
							
							
								 
						
							
								910285b238 
								
							 
						 
						
							
							
								
								[libcxx] Fix use of operator comma where the types can be user defined  
							
							... 
							
							
							
							Summary:
An evil user might overload operator comma. Use a void cast to make sure any user overload is not selected.
Modify all the test iterators to define operator comma. 
Reviewers: danalbert, mclow.lists
Reviewed By: mclow.lists
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D5929 
llvm-svn: 220706 
							
						 
						
							2014-10-27 19:28:20 +00:00  
				
					
						
							
							
								 
						
							
								78a87e8a68 
								
							 
						 
						
							
							
								
								Implement LWG 2193. Default constructors for standard library containers are explicit. Note that libc++ already did this for string/deque/forward_list/list/vector and the unordered containers; implement it for set/multiset/map/multimap. Add tests for all the containers. Two drive-by fixes as well: add a missing explicit in <deque>, and remove a tab that snuck into a container test. This issue is also LLVM bug 15724, and resolves it.  
							
							... 
							
							
							
							llvm-svn: 202994 
							
						 
						
							2014-03-05 19:06:20 +00:00  
				
					
						
							
							
								 
						
							
								3af48ef76e 
								
							 
						 
						
							
							
								
								G M: Changes all references to "x inline" to "inline x" where x = _libcpp_always_inline or _libcpp_inline_visibility macros.  
							
							... 
							
							
							
							The patch touches these files:
locale
array
deque
new
string
utility
vector
__bit_reference
__split_buffer
locale_win32.h
 
There is no intended functionality change and it is expected that reversing the position of the inline keyword with regard to the other keywords does not change the meaning of anything, least not for apple/Linux etc.
 
It is intended to make libcxx more consistent with itself and to prevent the 1000 or so
"inline.cpp(3) : warning C4141: 'inline' : used more than once" warnings that MS's cl.exe compiler emits without this patch, i.e. if inline is not the first keyword before a function name etc.
 
Prefer "inline [other inline related keyword]" over "[other related keyword] inline".
After this patch, libcxx should be consistent to this pattern.
llvm-svn: 191987 
							
						 
						
							2013-10-04 22:09:00 +00:00  
				
					
						
							
							
								 
						
							
								f1b6d1b538 
								
							 
						 
						
							
							
								
								Update synopsis for list/forward_list/deque to match the allocator style of existing comment. No code change  
							
							... 
							
							
							
							llvm-svn: 190320 
							
						 
						
							2013-09-09 18:19:45 +00:00  
				
					
						
							
							
								 
						
							
								630c5e535c 
								
							 
						 
						
							
							
								
								LWG Issue 2210 (Part  #1 ): deque  
							
							... 
							
							
							
							llvm-svn: 190251 
							
						 
						
							2013-09-07 16:16:19 +00:00  
				
					
						
							
							
								 
						
							
								f0544c2086 
								
							 
						 
						
							
							
								
								Nico Rieck:  this patch series fixes visibility issues on Windows as explained in < http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html >.  
							
							... 
							
							
							
							llvm-svn: 188192 
							
						 
						
							2013-08-12 18:38:34 +00:00  
				
					
						
							
							
								 
						
							
								8fe0a3722c 
								
							 
						 
						
							
							
								
								Implement NULL iterators for <forward_list> and <deque> re: N3644  
							
							... 
							
							
							
							llvm-svn: 187805 
							
						 
						
							2013-08-06 16:14:36 +00:00  
				
					
						
							
							
								 
						
							
								14e200d14d 
								
							 
						 
						
							
							
								
								Implement full support for non-pointer pointers in custom allocators for deque.  
							
							... 
							
							
							
							llvm-svn: 184673 
							
						 
						
							2013-06-23 21:17:24 +00:00  
				
					
						
							
							
								 
						
							
								6e41256f68 
								
							 
						 
						
							
							
								
								No functionality change at this time.  I've split _LIBCPP_VISIBLE up into two flags: _LIBCPP_TYPE_VIS and _LIBCPP_FUNC_VIS.  This is in preparation for taking advantage of clang's new __type_visibility__ attribute.  
							
							... 
							
							
							
							llvm-svn: 176593 
							
						 
						
							2013-03-06 23:30:19 +00:00  
				
					
						
							
							
								 
						
							
								598f702b04 
								
							 
						 
						
							
							
								
								Change emplace for vector and deque to create the temporary (when necessary) before any changes to the container are made.  Nikolay Ivchenkov deserves the credit for pushing this problem and the solution for it.  
							
							... 
							
							
							
							llvm-svn: 159918 
							
						 
						
							2012-07-08 23:23:04 +00:00  
				
					
						
							
							
								 
						
							
								c206366fd7 
								
							 
						 
						
							
							
								
								Quash a whole bunch of warnings  
							
							... 
							
							
							
							llvm-svn: 145624 
							
						 
						
							2011-12-01 20:21:04 +00:00  
				
					
						
							
							
								 
						
							
								c003db1fca 
								
							 
						 
						
							
							
								
								Further macro protection by replacing _[A-Z] with _[A-Z]p  
							
							... 
							
							
							
							llvm-svn: 145410 
							
						 
						
							2011-11-29 18:15:50 +00:00  
				
					
						
							
							
								 
						
							
								ab4f438239 
								
							 
						 
						
							
							
								
								Add protection from min/max macros  
							
							... 
							
							
							
							llvm-svn: 145407 
							
						 
						
							2011-11-29 16:45:27 +00:00  
				
					
						
							
							
								 
						
							
								073458b1ab 
								
							 
						 
						
							
							
								
								Windows support by Ruben Van Boxem.  
							
							... 
							
							
							
							llvm-svn: 142235 
							
						 
						
							2011-10-17 20:05:10 +00:00  
				
					
						
							
							
								 
						
							
								8668139f36 
								
							 
						 
						
							
							
								
								Fix const correctness bug in __move_assign.  Found and fixed by Ion Gaztañaga.  
							
							... 
							
							
							
							llvm-svn: 139032 
							
						 
						
							2011-09-02 20:42:31 +00:00  
				
					
						
							
							
								 
						
							
								54976f2619 
								
							 
						 
						
							
							
								
								Fixed PR10574:  http://llvm.org/bugs/show_bug.cgi?id=10574  
							
							... 
							
							
							
							llvm-svn: 137522 
							
						 
						
							2011-08-12 21:56:02 +00:00  
				
					
						
							
							
								 
						
							
								ce48a1137d 
								
							 
						 
						
							
							
								
								_STD -> _VSTD to avoid macro clash on windows  
							
							... 
							
							
							
							llvm-svn: 134190 
							
						 
						
							2011-06-30 21:18:19 +00:00  
				
					
						
							
							
								 
						
							
								4590010473 
								
							 
						 
						
							
							
								
								noexcept for <list>.  
							
							... 
							
							
							
							llvm-svn: 132562 
							
						 
						
							2011-06-03 17:30:28 +00:00  
				
					
						
							
							
								 
						
							
								91a4750733 
								
							 
						 
						
							
							
								
								noexcept for <forward_list>.  
							
							... 
							
							
							
							llvm-svn: 132553 
							
						 
						
							2011-06-03 16:20:53 +00:00  
				
					
						
							
							
								 
						
							
								801291139c 
								
							 
						 
						
							
							
								
								After sleeping on it I've decided that all special members that can be noexcept, should be declared so.  The client has the traits to detect and branch on this information, and it is often an important optimization.  Give deque() a noexcept.  Add test for deque default constructor and deque destructor.  
							
							... 
							
							
							
							llvm-svn: 132549 
							
						 
						
							2011-06-03 15:16:49 +00:00  
				
					
						
							
							
								 
						
							
								b58f59cdb3 
								
							 
						 
						
							
							
								
								Second try at getting noexcept on move and swap for deque.  I changed std::alloctor to propagate_on_container_move_assignment so as to make deque<T> move assignment noexcept.  What we really need is a compile-time switch that says an allocator always compares equal.  
							
							... 
							
							
							
							llvm-svn: 132490 
							
						 
						
							2011-06-02 21:38:57 +00:00  
				
					
						
							
							
								 
						
							
								9eebe11dd5 
								
							 
						 
						
							
							
								
								I've become quite disatsified with the lack of noexcept specifications on container move construction, move assignment operator and swap.  Without proper decoration on at least move construction, vectors of containers will have unacceptable performance.  Here's the fix for deque.  
							
							... 
							
							
							
							llvm-svn: 132480 
							
						 
						
							2011-06-02 20:00:14 +00:00  
				
					
						
							
							
								 
						
							
								a87e836083 
								
							 
						 
						
							
							
								
								noexcept for deque.  
							
							... 
							
							
							
							llvm-svn: 132459 
							
						 
						
							2011-06-02 16:10:22 +00:00  
				
					
						
							
							
								 
						
							
								6c38001ec5 
								
							 
						 
						
							
							
								
								Qualify calls to std::next(), to avoid conflicts with  
							
							... 
							
							
							
							libraries/applications that define their own 'next' template.
llvm-svn: 130511 
							
						 
						
							2011-04-29 16:20:26 +00:00  
				
					
						
							
							
								 
						
							
								a0fe8c436e 
								
							 
						 
						
							
							
								
								Chris Jefferson noted many places where function calls needed to be qualified (thanks Chris).  
							
							... 
							
							
							
							llvm-svn: 125510 
							
						 
						
							2011-02-14 19:12:38 +00:00  
				
					
						
							
							
								 
						
							
								72c5e14203 
								
							 
						 
						
							
							
								
								Qualify calls to addressof with std::.  Bug 9106  
							
							... 
							
							
							
							llvm-svn: 124726 
							
						 
						
							2011-02-02 17:36:20 +00:00  
				
					
						
							
							
								 
						
							
								412dbebe1b 
								
							 
						 
						
							
							
								
								license change  
							
							... 
							
							
							
							llvm-svn: 119395 
							
						 
						
							2010-11-16 22:09:02 +00:00  
				
					
						
							
							
								 
						
							
								fb100021b7 
								
							 
						 
						
							
							
								
								visibility-decoration.  
							
							... 
							
							
							
							llvm-svn: 114486 
							
						 
						
							2010-09-21 21:28:23 +00:00  
				
					
						
							
							
								 
						
							
								7609c9b665 
								
							 
						 
						
							
							
								
								Changed __config to react to all of clang's currently documented has_feature flags, and renamed _LIBCPP_MOVE to _LIBCPP_HAS_NO_RVALUE_REFERENCES to be more consistent with the rest of the libc++'s flags, and with clang's nomenclature.  
							
							... 
							
							
							
							llvm-svn: 113086 
							
						 
						
							2010-09-04 23:28:19 +00:00  
				
					
						
							
							
								 
						
							
								b3371f6f49 
								
							 
						 
						
							
							
								
								Fixing whitespace problems  
							
							... 
							
							
							
							llvm-svn: 111750 
							
						 
						
							2010-08-22 00:02:43 +00:00  
				
					
						
							
							
								 
						
							
								5b08a8a432 
								
							 
						 
						
							
							
								
								Wiped out some non-ascii characters that snuck into the copyright.  
							
							... 
							
							
							
							llvm-svn: 103516 
							
						 
						
							2010-05-11 21:36:01 +00:00  
				
					
						
							
							
								 
						
							
								3e519524c1 
								
							 
						 
						
							
							
								
								libcxx initial import  
							
							... 
							
							
							
							llvm-svn: 103490 
							
						 
						
							2010-05-11 19:42:16 +00:00