Howard Hinnant
02364191d6
Fix PR10509: http://llvm.org/bugs/show_bug.cgi?id=10509
...
llvm-svn: 136247
2011-07-27 19:25:28 +00:00
Howard Hinnant
21f78d88e1
Fix PR10510: http://llvm.org/bugs/show_bug.cgi?id=10510
...
llvm-svn: 136232
2011-07-27 18:34:06 +00:00
Howard Hinnant
1dba445e43
http://llvm.org/bugs/show_bug.cgi?id=10469
...
llvm-svn: 135897
2011-07-24 23:59:50 +00:00
Howard Hinnant
520a61383c
Optimization of string::operator< by M.E. O'Neill. Discussion in http://llvm.org/bugs/show_bug.cgi?id=10461
...
llvm-svn: 135893
2011-07-24 21:45:06 +00:00
Howard Hinnant
5b0bdc2043
http://llvm.org/bugs/show_bug.cgi?id=10461
...
llvm-svn: 135873
2011-07-24 15:07:21 +00:00
Howard Hinnant
7e6ca972c9
http://llvm.org/bugs/show_bug.cgi?id=10455
...
llvm-svn: 135854
2011-07-23 16:14:35 +00:00
Alexis Hunt
397d787642
Given that __underlying_type is now available in clang, implement
...
std::underlying_type.
llvm-svn: 135410
2011-07-18 18:37:21 +00:00
Howard Hinnant
e3163f5ae3
http://llvm.org/bugs/show_bug.cgi?id=10390
...
llvm-svn: 135393
2011-07-18 15:51:59 +00:00
Howard Hinnant
8ebf07a3de
Revert locale for apple back to original design, getting rid of now useless helper *_l functions
...
llvm-svn: 135272
2011-07-15 14:46:11 +00:00
Howard Hinnant
3b13c94a14
_LIBCXX_STABLE_APPLE_ABI -> _LIBCPP_STABLE_APPLE_ABI
...
llvm-svn: 135271
2011-07-15 14:25:40 +00:00
Alexis Hunt
4084c9ebe5
Reapply 135035 with proper conditional inclusion, hopefully solving
...
issues with it.
llvm-svn: 135246
2011-07-15 05:40:33 +00:00
Howard Hinnant
88410049fa
http://llvm.org/bugs/show_bug.cgi?id=10346
...
llvm-svn: 135045
2011-07-13 16:00:50 +00:00
Howard Hinnant
f6b7e20bc8
Reverted to 134947. Once I got into it, I discovered there were too many problems to fix in 135035.
...
llvm-svn: 135044
2011-07-13 15:48:16 +00:00
Alexis Hunt
8a02a632be
Implement the __nolocale functions properly so that they will work on
...
all platforms. Unfortunately a lot of this remains conditionally
compiled so as not to break Apple's ABI.
The new _LIBCPP_LOCALE__L_EXTENSIONS macro can be defined on other
platforms that support _l suffixes for all functions in order to use
them.
llvm-svn: 135035
2011-07-13 06:40:50 +00:00
Alexis Hunt
8dfec1ac7d
Make sure that __time_put constructors properly on non-Apple platforms.
...
llvm-svn: 134947
2011-07-12 00:55:04 +00:00
Howard Hinnant
7ae42ef0bf
Make vector<bool>::reference and const_reference public
...
llvm-svn: 134815
2011-07-09 15:50:42 +00:00
Alexis Hunt
0081892d33
Don't assume that wctype produces a nice mask on all platforms. On
...
glibc, for instance, it's a const char *.
llvm-svn: 134787
2011-07-09 03:40:04 +00:00
Alexis Hunt
f023519770
Conditionally wrap the changes from r134781.
...
llvm-svn: 134783
2011-07-09 01:09:31 +00:00
Alexis Hunt
3f60bca9e9
Implement generalized table lookups for upper, lower, and character
...
traits.
To the best of my knowledge, this will not break the ABI for Apple.
However, it does introduce three publicly visible (although with
reserved name) functions that will fail to link against the just-shipped
Apple version of libc++. Since they are not used in any inline
functions, no actual breakage should occur.
If Howard doesn't want to put undefined functions (even internal ones)
into a header, they could be surrounded by additional conditional
compilation.
llvm-svn: 134781
2011-07-09 00:56:23 +00:00
Howard Hinnant
11af28bdbd
Fixing up some ABI issues
...
llvm-svn: 134639
2011-07-07 21:03:52 +00:00
Howard Hinnant
1f8da84b76
Fix uninitialized loop counter. http://llvm.org/bugs/show_bug.cgi?id=10278
...
llvm-svn: 134405
2011-07-05 14:14:17 +00:00
Howard Hinnant
a77445621b
http://llvm.org/bugs/show_bug.cgi?id=10248
...
llvm-svn: 134327
2011-07-02 20:33:23 +00:00
Howard Hinnant
086d0de171
http://llvm.org/bugs/show_bug.cgi?id=10250
...
llvm-svn: 134325
2011-07-02 18:22:36 +00:00
Howard Hinnant
b929de3c3d
Changed constraints on pair and tuple constructors from is_convertible to is_constructible.
...
llvm-svn: 134252
2011-07-01 20:12:51 +00:00
Howard Hinnant
5a33687da0
Correct for new rules regarding implicitly deleted special members. http://llvm.org/bugs/show_bug.cgi?id=10191
...
llvm-svn: 134248
2011-07-01 19:24:36 +00:00
Howard Hinnant
ce48a1137d
_STD -> _VSTD to avoid macro clash on windows
...
llvm-svn: 134190
2011-06-30 21:18:19 +00:00
Douglas Gregor
64ec101eb6
Teach libc++ about the addressof() overloads it needs to work with
...
Objective-C Automatic Reference Counting, where Objective-C object
pointers can have several different qualifiers (__strong, __weak,
__autoreleasing, __unsafe_unretained). These addressof() overloads are
only provided in ARC mode, and the __weak variant is conditionalized
on having weak-reference support in the ARC runtime.
For historical reasons, Clang provides these definitions itself, and
defines the macro _LIBCPP_PREDEFINED_OBJC_ARC_ADDRESSOF to note when
it as done so. The code belongs here, and this redundancy will be
eliminated in the future.
Addresses <rdar://problem/9658274>.
llvm-svn: 133656
2011-06-22 22:17:44 +00:00
Howard Hinnant
a945a32981
More fixes: One of my fixes to type_traits earlier today was incorrect, so that is reverted. Recently clang appears to have tightened up its definition of is_convertible and that has caused some failures in [unordered_][multi]map. I've switched to using is_constructible to restablish the desired functionality in [unordered_][multi]map. Specifically, inserting rvalues of move-only types for the keys.
...
llvm-svn: 133402
2011-06-19 21:45:00 +00:00
Howard Hinnant
2d62821f98
Miscellaneous minor fixes in <type_traits>
...
llvm-svn: 133401
2011-06-19 19:12:59 +00:00
Howard Hinnant
ce53420e37
Provide names for template and function parameters in forward declarations. The purpose is to aid automated documentation tools.
...
llvm-svn: 133008
2011-06-14 19:58:17 +00:00
Howard Hinnant
32208bde75
Move nullptr_t to unversioned namespace: Sean Hunt
...
llvm-svn: 132665
2011-06-05 13:00:46 +00:00
Howard Hinnant
bd0c160078
noexcept for <stack>. This completes noexcept for Chapter 23 [containers].
...
llvm-svn: 132652
2011-06-04 22:09:19 +00:00
Howard Hinnant
6971d82668
noexcept for <queue>.
...
llvm-svn: 132650
2011-06-04 21:32:33 +00:00
Howard Hinnant
557da866a3
noexcept for <unordered_set>.
...
llvm-svn: 132647
2011-06-04 20:18:37 +00:00
Howard Hinnant
3714107ed6
noexcept for <unordered_map>.
...
llvm-svn: 132646
2011-06-04 18:54:24 +00:00
Howard Hinnant
e691351098
Made more implementation details of [multi]map/set noexcept.
...
llvm-svn: 132642
2011-06-04 17:10:24 +00:00
Howard Hinnant
0e9f71c13f
noexcept for <set>. Plus a few fixes to noexcept for <map>.
...
llvm-svn: 132640
2011-06-04 15:22:34 +00:00
Howard Hinnant
1052ee39cb
noexcept for <map>.
...
llvm-svn: 132639
2011-06-04 14:31:57 +00:00
Howard Hinnant
3297ed7065
noexcept for <vector>. This also includes installing move_if_noexcept() into vector.
...
llvm-svn: 132577
2011-06-03 19:40:40 +00:00
Howard Hinnant
2d45a18c24
Bring noexcept for <string> inline with other containers.
...
llvm-svn: 132573
2011-06-03 18:40:47 +00:00
Howard Hinnant
4590010473
noexcept for <list>.
...
llvm-svn: 132562
2011-06-03 17:30:28 +00:00
Howard Hinnant
91a4750733
noexcept for <forward_list>.
...
llvm-svn: 132553
2011-06-03 16:20:53 +00:00
Howard Hinnant
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
Howard Hinnant
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
Howard Hinnant
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
Howard Hinnant
f9dc28313f
noexcept for forward_list.
...
llvm-svn: 132461
2011-06-02 16:44:28 +00:00
Howard Hinnant
a87e836083
noexcept for deque.
...
llvm-svn: 132459
2011-06-02 16:10:22 +00:00
Howard Hinnant
bc95cf0d5f
Experimental support for a meaningful __is_swappable<T>::value. This does not appear to be strictly needed for correct functioning of the library. If it causes any problems, I'd rather pull it sooner rather than later.
...
llvm-svn: 132421
2011-06-01 19:59:32 +00:00
Howard Hinnant
e88f577da1
Turning on cxx_nullptr exposed a latent bug in is_function, causing nullptr to wrongly classify as a function. Fixed.
...
llvm-svn: 132406
2011-06-01 17:25:11 +00:00
Howard Hinnant
542b2507de
I've seen this question enough times to know that it should be fixed: http://stackoverflow.com/questions/6193734/implicit-conversions-with-stdfunction
...
llvm-svn: 132363
2011-05-31 21:45:26 +00:00