| 
							
							
								 Howard Hinnant | 18884f4e9f | 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. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132490 91177308-0d34-0410-b5e6-96231b3b80d8 | 2011-06-02 21:38:57 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 1694d23e23 | noexcept for <memory>.  I've added a few extension noexcept to:  allocator_traits<A>::deallocate, allocaate<T>::deallocate, return_temporary_buffer, and default_delete<T>::operator()(T*) const.  My rationale was:  If a std-dicated noexcept function needs to call another std-defined function, that called function must be noexcept.  We're all a little new to noexcept, so things like this are to be expected.  Also included fix for broken __is_swappable trait pointed out by Marc Glisse, thanks Marc|.  And fixed a test case for is_nothrow_destructible.  Destructors are now noexcept by default| git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132261 91177308-0d34-0410-b5e6-96231b3b80d8 | 2011-05-28 14:41:13 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | e003ce4899 | __invokable and __invoke_of now check for incomplete types and issue a compile-time diagnostic if they are used with incomplete types for anything except a return type.  Note that both arguments *and* parameters are checked for completeness. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131818 91177308-0d34-0410-b5e6-96231b3b80d8 | 2011-05-22 00:09:02 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 6b41c6047b | Corrected some bugs in both memory and the tests.  Preparing for being able to turn on support for alias templates. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131199 91177308-0d34-0410-b5e6-96231b3b80d8 | 2011-05-11 20:21:19 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 2529d02b5d | Qualify calls to addressof with std::.  Bug 9106 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@124726 91177308-0d34-0410-b5e6-96231b3b80d8 | 2011-02-02 17:36:20 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | ac38bae75b | fix guard git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@123269 91177308-0d34-0410-b5e6-96231b3b80d8 | 2011-01-11 20:02:45 +00:00 |  | 
			
				
					| 
							
							
								 Michael J. Spencer | 626916fc25 | Add CMake build and fix major Linux blockers. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121510 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-12-10 19:47:54 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 1468b668aa | N3142.  Many of these traits are just placeholders with medium quality emulation; waiting on compiler intrinsics to do it right. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119854 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-11-19 22:17:28 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 2f6a627394 | LWG 1339 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119699 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-11-18 16:13:03 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 47761071be | LWG 1404 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119609 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-11-18 01:40:00 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | b64f8b07c1 | license change git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119395 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-11-16 22:09:02 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 28dbbe0596 | Dave Zarzycki showed how the efficiency of shared_ptr could be significantly increased.  The following program is running 49% faster:
#include <iostream>
#include <memory>
#include <chrono>
#include <vector>
#include "chrono_io"
int main()
{
    typedef std::chrono::high_resolution_clock Clock;
    Clock::time_point t0 = Clock::now();
    {
        std::shared_ptr<int> p(new int (1));
        std::vector<std::shared_ptr<int> > v(1000000, p);
        v.insert(v.begin(), p);
        v.insert(v.begin(), p);
        v.insert(v.begin(), p);
        v.insert(v.begin(), p);
    }
    Clock::time_point t1 = Clock::now();
    std::cout << (t1-t0) << '\n';
}
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119388 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-11-16 21:33:17 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 726a76fb47 | I have reverted all contributions made by Jesse Towner in revision 110724 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119383 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-11-16 21:10:23 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 828948148d | visibility-decoration. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114551 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-09-22 16:48:34 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 36cdf027d2 | I am experimenting with putting visibility-default attributes on all struct/classes in libc++.  This checkin decorates only basic_string and vector as an experiment, and for review by those in this audience that might know more about visibilty than I do.  If I get no negative feedback on this procedure I will begin to decorate the entire library in this way. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113590 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-09-10 16:42:26 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 73d21a4f07 | 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. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113086 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-09-04 23:28:19 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 324bb03bb9 | Fixing whitespace problems git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@111750 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-08-22 00:02:43 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 92172b891f | US 108, N3109 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@111747 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-08-21 21:14:53 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | e92c3d74ce | US 107 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@111538 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-08-19 18:39:17 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | d444470d6c | now works with -fno-exceptions and -fno-rtti git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@110828 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-08-11 17:04:31 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 60a0a8ef24 | patch by Jesse Towner, and bug fix by Sebastian Redl git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@110724 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-08-10 20:48:29 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 21aefc3a61 | [util.smartptr.hash] git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@105393 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-06-03 16:42:57 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | 03aad81afd | [rand.dist.bern.bin].  The evaluation function for this binomial distribution is hopefully just a placeholder.  It is using the simplest and slowest method for computing the distribution and needs to be upgraded. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103524 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-05-11 23:26:59 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | f5256e16df | Wiped out some non-ascii characters that snuck into the copyright. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103516 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-05-11 21:36:01 +00:00 |  | 
			
				
					| 
							
							
								 Howard Hinnant | bc8d3f97eb | libcxx initial import git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103490 91177308-0d34-0410-b5e6-96231b3b80d8 | 2010-05-11 19:42:16 +00:00 |  |