Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								ce075cf1aa 
								
							 
						 
						
							
							
								
								Constrain fill_n -> memset operations to include implicit convertibility to unsigned char.  This fixes  http://llvm.org/bugs/show_bug.cgi?id=16764 .  Also a drive-by fix on a chrono test suite bug.  
							
							 
							
							... 
							
							
							
							llvm-svn: 187552 
							
						 
						
							2013-08-01 00:41:55 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								8bb1dbbf75 
								
							 
						 
						
							
							
								
								Fix a bug in std::fill_n where memset would end up being called in cases when it shouldn’t.  
							
							 
							
							... 
							
							
							
							Reviewed by Howard.
llvm-svn: 186875 
							
						 
						
							2013-07-22 21:08:00 +00:00  
						
					 
				
					
						
							
							
								 
								Marshall Clow
							
						 
						
							 
							
							
							
							
								
							
							
								fce85ba455 
								
							 
						 
						
							
							
								
								Fix incorrect type usage; nice catch by Sebastian  
							
							 
							
							... 
							
							
							
							llvm-svn: 181569 
							
						 
						
							2013-05-10 00:16:10 +00:00  
						
					 
				
					
						
							
							
								 
								Marshall Clow
							
						 
						
							 
							
							
							
							
								
							
							
								0b0bbd2f22 
								
							 
						 
						
							
							
								
								Implement n3607: 'equal', 'mismatch', and 'is_permutation'  
							
							 
							
							... 
							
							
							
							llvm-svn: 181548 
							
						 
						
							2013-05-09 21:14:23 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								b13fcad677 
								
							 
						 
						
							
							
								
								Somehow search_n never got tested, so of course it had a bug in it.  This fixes  http://llvm.org/bugs/show_bug.cgi?id=15667 .  
							
							 
							
							... 
							
							
							
							llvm-svn: 178764 
							
						 
						
							2013-04-04 15:40:48 +00:00  
						
					 
				
					
						
							
							
								 
								Marshall Clow
							
						 
						
							 
							
							
							
							
								
							
							
								b6e5f854f5 
								
							 
						 
						
							
							
								
								Change the 'result_type' from unsigned to 'uint_fast32_t'. This eliminates truncation warnings on Linux  
							
							 
							
							... 
							
							
							
							llvm-svn: 174669 
							
						 
						
							2013-02-07 22:12:02 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								d3d4356f6e 
								
							 
						 
						
							
							
								
								Marcin Zalewski:  Change the name of a template parameter in __copy_backward from _InputIterator to _BidirectionalIterator to better document the intent of the algorithm.  
							
							 
							
							... 
							
							
							
							llvm-svn: 174544 
							
						 
						
							2013-02-06 21:03:39 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								cd47cbc7a4 
								
							 
						 
						
							
							
								
								Provide a way to disable use of extern templates in libc++.  This is intended for the clients of libc++, not the libc++ build.  The dylib should always contain the extern templates.  To disable the client needs to put -D'_LIBCPP_EXTERN_TEMPLATE(...)=' on the command line.  
							
							 
							
							... 
							
							
							
							llvm-svn: 167486 
							
						 
						
							2012-11-06 21:08:48 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								aca09de378 
								
							 
						 
						
							
							
								
								Performance tweaking rotate.  
							
							 
							
							... 
							
							
							
							rotate is a critical algorithm because it is often used by other algorithms,
both std and non-std.  The main thrust of this optimization is a specialized
algorithm when the 'distance' to be shifted is 1 (either left or right).  To my
surprise, this 'optimization' was not effective for types like std::string.
std::string favors rotate algorithms which only use swap.  But for types like
scalars, and especially when the sequence is random access, these new
specializations are a big win.  If it is a vector<size_t> for example, the
rotate is done via a memmove and can be several times faster than the gcd
algorithm.
I'm using is_trivially_move_assignable to distinguish between types like int and
types like string.  This is obviously an ad-hoc approximation, but I haven't
found a case where it doesn't give good results.
I've used a 'static if' (with is_trivially_move_assignable) in three places. 
Testing with both -Os and -O3 showed that clang eliminated all code not be
executed by the 'static if' (including the 'static if' itself).
llvm-svn: 161247 
							
						 
						
							2012-08-03 18:01:20 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								a1d07d57a7 
								
							 
						 
						
							
							
								
								<algorithm> no longer needs to include <cstdlib>, but can get away with just <cstddef>.  This was brought to my attention by Salvatore Benedetto in his port to a bare-metal coretex-m3.  This exposed two test bugs where an explicit #include <cstdlib> was needed.  
							
							 
							
							... 
							
							
							
							llvm-svn: 160786 
							
						 
						
							2012-07-26 17:09:09 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								e386b7b360 
								
							 
						 
						
							
							
								
								Update <random> with constexpr support.  Patch contributed by Jonathan Sauer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 153896 
							
						 
						
							2012-04-02 21:00:45 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								788c9979d9 
								
							 
						 
						
							
							
								
								This is an initial commit of constexpr support as proposed by Richard Smith.  This by no means completes constexpr support.  Indeed, it hardly scratches the surface.  All it does is lay the foundation in <__config> and changes those few places in the library that are already using that foundation.  
							
							 
							
							... 
							
							
							
							llvm-svn: 153856 
							
						 
						
							2012-04-02 00:40:41 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								b34b48196c 
								
							 
						 
						
							
							
								
								The exception recovery mechanism for the uninitialized_* algorithms did not work for iterators into discontiguous memory.  
							
							 
							
							... 
							
							
							
							llvm-svn: 147343 
							
						 
						
							2011-12-29 17:45:35 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								c206366fd7 
								
							 
						 
						
							
							
								
								Quash a whole bunch of warnings  
							
							 
							
							... 
							
							
							
							llvm-svn: 145624 
							
						 
						
							2011-12-01 20:21:04 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								c003db1fca 
								
							 
						 
						
							
							
								
								Further macro protection by replacing _[A-Z] with _[A-Z]p  
							
							 
							
							... 
							
							
							
							llvm-svn: 145410 
							
						 
						
							2011-11-29 18:15:50 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								ab4f438239 
								
							 
						 
						
							
							
								
								Add protection from min/max macros  
							
							 
							
							... 
							
							
							
							llvm-svn: 145407 
							
						 
						
							2011-11-29 16:45:27 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								1c2c87c502 
								
							 
						 
						
							
							
								
								Remove redundant iterator assignment detected by Marshall Clow  
							
							 
							
							... 
							
							
							
							llvm-svn: 145265 
							
						 
						
							2011-11-28 19:49:26 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								0176bc6cf5 
								
							 
						 
						
							
							
								
								Fixed bug in __independent_bits_engine found by Nick (from stackoverflow)  
							
							 
							
							... 
							
							
							
							llvm-svn: 143104 
							
						 
						
							2011-10-27 16:12:10 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								e4383379ae 
								
							 
						 
						
							
							
								
								More windows port work by Ruben Van Boxem  
							
							 
							
							... 
							
							
							
							llvm-svn: 142732 
							
						 
						
							2011-10-22 20:59:45 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								073458b1ab 
								
							 
						 
						
							
							
								
								Windows support by Ruben Van Boxem.  
							
							 
							
							... 
							
							
							
							llvm-svn: 142235 
							
						 
						
							2011-10-17 20:05:10 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								f554add54e 
								
							 
						 
						
							
							
								
								Initial checkin for debug mode (version 2)  
							
							 
							
							... 
							
							
							
							llvm-svn: 139711 
							
						 
						
							2011-09-14 18:33:51 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								54976f2619 
								
							 
						 
						
							
							
								
								Fixed PR10574:  http://llvm.org/bugs/show_bug.cgi?id=10574  
							
							 
							
							... 
							
							
							
							llvm-svn: 137522 
							
						 
						
							2011-08-12 21:56:02 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								ce48a1137d 
								
							 
						 
						
							
							
								
								_STD -> _VSTD to avoid macro clash on windows  
							
							 
							
							... 
							
							
							
							llvm-svn: 134190 
							
						 
						
							2011-06-30 21:18:19 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								a676f7d36a 
								
							 
						 
						
							
							
								
								noexcept for <utility>.  This included a little repair on pair, and some noexcept workarounds.  
							
							 
							
							... 
							
							
							
							llvm-svn: 132186 
							
						 
						
							2011-05-27 15:04:19 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								99847d2bf1 
								
							 
						 
						
							
							
								
								Fix copy_n to increment only n-1 times for an input iterator.  This works much better with std::istream_iterator<int>(std::cin).  Credit: Matan Nassau.  
							
							 
							
							... 
							
							
							
							llvm-svn: 126581 
							
						 
						
							2011-02-27 20:55:39 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								ca74048398 
								
							 
						 
						
							
							
								
								N3142.  Many of these traits are just placeholders with medium quality emulation; waiting on compiler intrinsics to do it right.  
							
							 
							
							... 
							
							
							
							llvm-svn: 119854 
							
						 
						
							2010-11-19 22:17:28 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								fb34010258 
								
							 
						 
						
							
							
								
								LWG 1432  
							
							 
							
							... 
							
							
							
							llvm-svn: 119611 
							
						 
						
							2010-11-18 01:47:02 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								412dbebe1b 
								
							 
						 
						
							
							
								
								license change  
							
							 
							
							... 
							
							
							
							llvm-svn: 119395 
							
						 
						
							2010-11-16 22:09:02 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								007b26be68 
								
							 
						 
						
							
							
								
								Fixed bug in random_shuffle to avoid swapping with self  
							
							 
							
							... 
							
							
							
							llvm-svn: 117098 
							
						 
						
							2010-10-22 15:26:39 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								b3371f6f49 
								
							 
						 
						
							
							
								
								Fixing whitespace problems  
							
							 
							
							... 
							
							
							
							llvm-svn: 111750 
							
						 
						
							2010-08-22 00:02:43 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								4eb27b79c1 
								
							 
						 
						
							
							
								
								US 122, N3106  
							
							 
							
							... 
							
							
							
							llvm-svn: 111742 
							
						 
						
							2010-08-21 20:10:01 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								c8edcb3651 
								
							 
						 
						
							
							
								
								weekly test results plus a bug fix clang found  
							
							 
							
							... 
							
							
							
							llvm-svn: 104877 
							
						 
						
							2010-05-27 20:06:01 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								f9d540b062 
								
							 
						 
						
							
							
								
								Completed [alg.random.shuffle].  
							
							 
							
							... 
							
							
							
							llvm-svn: 104708 
							
						 
						
							2010-05-26 17:49:34 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								128ba7191d 
								
							 
						 
						
							
							
								
								patch by Jeffrey Yasskin for porting to Ubuntu Hardy.  Everything was accepted except there were some bug fixes needed in <locale> for the __nolocale_* series.  For the apple branch I ended up using templates instead of the var_args solution because it seemed both safer and more efficient.  
							
							 
							
							... 
							
							
							
							llvm-svn: 104516 
							
						 
						
							2010-05-24 17:49:41 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								5b08a8a432 
								
							 
						 
						
							
							
								
								Wiped out some non-ascii characters that snuck into the copyright.  
							
							 
							
							... 
							
							
							
							llvm-svn: 103516 
							
						 
						
							2010-05-11 21:36:01 +00:00  
						
					 
				
					
						
							
							
								 
								Howard Hinnant
							
						 
						
							 
							
							
							
							
								
							
							
								3e519524c1 
								
							 
						 
						
							
							
								
								libcxx initial import  
							
							 
							
							... 
							
							
							
							llvm-svn: 103490 
							
						 
						
							2010-05-11 19:42:16 +00:00