90dc8dd841b975fccfa4a278b9b44065d3644839 |
|
26-Aug-2014 |
Dan Albert <danalbert@google.com> |
Update to upstream r216384. This rebase skips the following patches in upstream: + 37025e1b32d44751243257975b9e3d45b2873266 Make the helper routines in string really be constexpr. This required a bit of refacoring in algorithm as well. Give them better names while we're at it. All of these are internal rotines; no visible functionality change. + 164b297099f486abe42122fe1aefe7eb741b7acf Implement string_view from the library fundamentals TS (n4023). Also works in C++11 and 03, with reduced functionality (mostly in the area of constexpr) + e4694b41295484e5c521d2c281de9330c6d60c79 Formatting improvements in the <string_view> synopsis suggested by RSmith. No functionality change. + 3a61b30f3affb1ba9412793a0a570ac87e6d26b3 Minor cleanup for string_view; mostly from suggestions by Richard Smith. Also, make the tests pass under c++03 + 484728789ed4aee35e62c031cb3392a5982a5d0f string_view enhancements. Move to the correct namespace. Better constexpr support (thanks to Richard for the suggestions). Update the tests to match this. Add <experimental/__config for experimental macros/etc to live. + b1a40264dcb88479e9227faaeb015da8e51fbe79 [libcxx] Add <experimental/utility> header for LFTS. + 3ee7233c8072ef912e249e391b35168f559bb239 [libcxx] expose experimental::erased_type for all standard versions. + 67740670f980cf43bbc2daf352dff89fd6771008 NFC. Remove trailing whitespace and tabs. + b9536101dcc36995794ea81a4f74b5f132211142 NFC. Move definition of _LIBCPP_ASSERT into __debug header and remove external include guards. + 98c4e404ca8c524c54b4e7ede97b807355422b53. Revert "Turn off extern templates for most uses." Bug: 17255369 Change-Id: I629ff16275d50e4cc8767b253a2c0542468348d8
/external/libcxx/www/debug_mode.html
|
5e57142c5902c3f73a6fdcb8cab55e88ffb43a56 |
|
23-Aug-2013 |
Howard Hinnant <hhinnant@apple.com> |
Rename _LIBCPP_DEBUG2 to _LIBCPP_DEBUG. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@189140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
|
824c19963e0263366047787b024a992afc2b1c54 |
|
02-Aug-2013 |
Howard Hinnant <hhinnant@apple.com> |
debug mode for unordered_map. Also picked up a missing check and test in unordered_multimap. This wraps up debug mode for the unordered containers. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@187659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
|
8b00e6c96091c828b40ac410b6f123c7429a653d |
|
02-Aug-2013 |
Howard Hinnant <hhinnant@apple.com> |
Ok, 3 major changes for debug mode in one commit: 1. I had been detecting and trapping iterator == and \!= among iterators in different containers as an error. But the trapping itself is actually an error. Consider: #include <iostream> #include <vector> #include <algorithm> template <class C> void display(const C& c) { std::cout << "{"; bool first = true; for (const auto& x : c) { if (\!first) std::cout << ", "; first = false; std::cout << x; } std::cout << "}\n"; } int main() { typedef std::vector<int> V; V v1 = {1, 3, 5}; V v2 = {2, 4, 6}; display(v1); display(v2); V::iterator i = std::find(v1.begin(), v1.end(), 1); V::iterator j = std::find(v2.begin(), v2.end(), 2); if (*i == *j) i = j; // perfectly legal // ... if (i \!= j) // the only way to check v2.push_back(*i); display(v1); display(v2); } It is legal to assign an iterator from one container to another of the same type. This is required to work. One might want to test whether or not such an assignment had been made. The way one performs such a check is using the iterator's ==, \!= operator. This is a logical and necessary function and does not constitute an error. 2. I had a header circular dependence bug when _LIBCPP_DEBUG2 is defined. This caused a problem in several of the libc++ tests. Fixed. 3. There is a serious problem when _LIBCPP_DEBUG2=1 at the moment in that std::basic_string is inoperable. std::basic_string uses __wrap_iterator to implement its iterators. __wrap_iterator has been rigged up in debug mode to support vector. But string hasn't been rigged up yet. This means that one gets false positives when using std::string in debug mode. I've upped std::string's priority in www/debug_mode.html. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@187636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
|
0bb0a7c9ea7dc2852c9bfb38584f4673ada25e2a |
|
29-Jul-2013 |
Howard Hinnant <hhinnant@apple.com> |
Debug mode for unordered_multiset. The exercise spotted a few places I had missed on unordered_set, so I picked those up as well. There are actually two debug modes: 1. -D_LIBCPP_DEBUG2 or -D_LIBCPP_DEBUG2=1 This is a relatively expensive debug mode, but very thorough. This is normally what you want to debug with, but may turn O(1) operations into O(N) operations. 2. -D_LIBCPP_DEBUG2=0 This is "debug lite." Only preconditions that can be checked with O(1) expense are checked. For example range checking on an indexing operation. But not iterator validity. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@187369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
|
2062f377728e6c2a77842ca5b2c6428aab605ebc |
|
16-Apr-2013 |
Howard Hinnant <hhinnant@apple.com> |
I believe this finishes up debug mode for list. The testing is a little weak, but I believe all of the functionality is there. Certainly enough for people to checkout and start beating up on. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@179632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
|
302fa82a1cb1c1070a869e7ca6103d737b93a9ed |
|
28-Mar-2013 |
Howard Hinnant <hhinnant@apple.com> |
I believe debug mode for vector<T> (T != bool) is complete. If anyone sees anything more they would like to see on it, please let me know. Debug mode is activated by compiling with -D_LIBCPP_DEBUG2=1. Eventually _LIBCPP_DEBUG2 will be renamed to just _LIBCPP_DEBUG. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@178288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
|
c7cbe502dbf62acc4168b511d51eb181492950ba |
|
14-Mar-2013 |
Howard Hinnant <hhinnant@apple.com> |
Some forward-looking and optimistic documentation. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@177093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
|