- ffbb91b Address "always inline function is not always inlinable" warning with GCC. by Eric Fiselier · 6 years ago
- 64c10d0 Implement LWG 2946, 3075 and 3076. Reviewed as https://reviews.llvm.org/D48616 by Marshall Clow · 6 years ago
- ab343bb Mark __clear_and_shrink() as noexcept. This prevents the generation of a catch block and call to terminate in string's move assignment. Thanks to Howard for the 'catch'. by Marshall Clow · 6 years ago
- 256f187 Implement LWG3034: P0767R1 breaks previously-standard-layout types by Marshall Clow · 7 years ago
- 2b588cb Low-hanging fruit optimization in string::__move_assign(). by Vedant Kumar · 7 years ago
- 5b1e87e Implement deduction guide for basic_string as described in P0433 by Marshall Clow · 7 years ago
- 088e601 Fix PR#31454 - 'basic_string<T>::push_back() crashes if sizeof(T)>sizeof(long long)'. We were mishandling the small-string optimization calculations for very large 'characters'. This may be an ABI change (change the size of) strings of very large 'characters', but since they never worked, I'm not too concerned. by Marshall Clow · 7 years ago
- 46ea17e Change a static_assert to check for is_trivial instead of is_pod, as is mandated by P0767. by Marshall Clow · 7 years ago
- 46b4ad5 Implement P0457R2: 'String Prefix and Suffix Checking' for c++2a by Marshall Clow · 7 years ago
- 10bebe2 Fix std::string::data() symbol during library build. by Eric Fiselier · 7 years ago
- f1729d9 More of P0600 - '[[nodiscard]] in the Library' mark empty() as nodiscard in string, string_view, and the free function std::empty(). Removed tabs from <string_view>, which is why the diff is so big. by Marshall Clow · 7 years ago
- 5ccf043 Refactor _LIBCPP_<LITTLE|BIG>_ENDIAN by Eric Fiselier · 7 years ago
- 0b9db07 Add even more string_view tests. These found some bugs in the default parameter value for rfind/find_last_of/find_last_not_of by Marshall Clow · 7 years ago
- 487562f [libc++] Hoist extern template above first use by Shoaib Meenai · 7 years ago
- 0d6a92e [libc++] Clean up cl warning 4231 disabling by Shoaib Meenai · 7 years ago
- cd75b28 [libc++] Mark string operator+ _LIBCPP_FUNC_VIS by Shoaib Meenai · 7 years ago
- de79ab6 Fix unrepresentable enum for clang-cl unstable ABI by Ben Craig · 7 years ago
- 6850670 [libc++] Hoist explicit instantiation above implicit. NFC by Shoaib Meenai · 7 years ago
- 59e24fe Fix more unreserved names by Eric Fiselier · 7 years ago
- 018a3d5 [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows by Eric Fiselier · 7 years ago
- 3e92897 Cleanup _LIBCPP_HAS_NO_<c++11-feature> in the string library. by Eric Fiselier · 7 years ago
- 622c7d5 Fix PR32642 - string::insert and string::append don't work with move_iterator. by Eric Fiselier · 7 years ago
- db14bcc [libcxx] Fix __compressed_pair so it doesn't copy the argument multiple times, and add constexpr. by Eric Fiselier · 7 years ago
- ed3c0e6 string: Remove always_inline from basic_string::__init by Duncan P. N. Exon Smith · 8 years ago
- 2d4c3fa Implement LWG#2761: 'basic_string should require that charT match traits::char_type'. Tests for string_view, too by Marshall Clow · 8 years ago
- 3b7c134 Disable unsigned integer sanitizer for basic_string::replace(). Patch from tomcherry@google.com by Eric Fiselier · 8 years ago
- 24e8dbd [libc++] Make _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS export members by Shoaib Meenai · 8 years ago
- f9aeac6 Mark a couple for basic_string member templates as inline. no ABI change this time. by Eric Fiselier · 8 years ago
- 25380e4 Remove more basic_string member function templates from the dylib exports by Eric Fiselier · 8 years ago
- 0eaf2e8 [libc++] Fix PR 31938 - std::basic_string constructors use non-deductible parameter types. by Eric Fiselier · 8 years ago
- 9e6abfa Mark basic_string::assign templates as inline to improve ABI stability. by Eric Fiselier · 8 years ago
- 9247fd2 Fix PR#31779: basic_string::operator= isn't exception safe. by Marshall Clow · 8 years ago
- f472d6c Fix GCC C++03 build by hiding default template argument in C++03 by Eric Fiselier · 8 years ago
- 37b2be9 Fix std::string assignment ambiguity from braced initializer lists. by Eric Fiselier · 8 years ago
- c3589a8 [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS by Eric Fiselier · 8 years ago
- 47257c4 Add tests for unordered container tests and std::string by Eric Fiselier · 8 years ago
- 0e5ebbc Fix unused parameters and variables by Eric Fiselier · 8 years ago
- db7fa11 Fixes for LWG 2598, 2686, 2739, 2742, 2747, and 2759, which were adopted last week in Issaquah by Marshall Clow · 8 years ago
- 51eb1d5 Add 'inline' but not 'always_inline' to std::strings destructor. by Eric Fiselier · 8 years ago
- d5b0db5 Remove additional function template definitions from the dylib by Eric Fiselier · 8 years ago
- 026d38e Optimize filesystem::path by providing weaker exception guarantees. by Eric Fiselier · 8 years ago
- ff8cce4 Revert "Added 'inline' attribute to basic_string's destructor" by Mehdi Amini · 8 years ago
- c715f55 Added 'inline' attribute to basic_string's destructor by Aditya Kumar · 8 years ago
- 9dbc053 Remove two ABI symbols added after the 3.9 release by Eric Fiselier · 8 years ago
- 42a87db Change a couple of 'template <typename's to 'template <class' which is what we use in the rest of the library. by Marshall Clow · 8 years ago
- 6ac8de0 Implement proposed resolution for LWG#2758. Reviewed as D24446. Normally, I would wait for these to be voted upon at a committee meeting (November), but the current draft standard is broken, and this should fix it. (And if it doesn't, we want to know about it soonest) by Marshall Clow · 8 years ago
- 6dbed46 [libc++] Add _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY to support GCC ABI compatibility by Eric Fiselier · 8 years ago
- 833d644 [libc++] Fix and document visibility attributes for Clang, GCC and Windows. by Eric Fiselier · 8 years ago
- d940dca Revert r280944 - Added 'inline' attribute to basic_string's destructor by Eric Fiselier · 8 years ago
- b9e6e89 Added 'inline' attribute to basic_string's destructor by Aditya Kumar · 8 years ago
- ac655ef Fix PR#30303 - no matching function for call to '__ptr_in_range' by Marshall Clow · 8 years ago
- d979eed Fix Bug 30240 - std::string: append(first, last) error when aliasing. Add test cases for append/insert/assign/replace while we're at it, and fix a similar bug in insert. by Marshall Clow · 8 years ago
- 14c09a2 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. by Marshall Clow · 8 years ago
- bb11bc4 Add 'inline' attribute to __init to inline the basic_string's constructor by Sebastian Pop · 8 years ago
- 1e00d6d Implement std::string_view as described in http://wg21.link/P0254R1. Reviewed as https://reviews.llvm.org/D21459 by Marshall Clow · 8 years ago
- 566bcb4 Fix most GCC attribute ignored warnings by Eric Fiselier · 8 years ago
- f4f7d8f Recommit r263036 with additional inlining, so that it will continue to work with existing system dylibs. Implements LWG#2583 by Marshall Clow · 9 years ago
- fadd1db Revert r263036, it's ABI-breaking. by Nico Weber · 9 years ago
- f40ec90 Implement LWG#2579: Inconsistency wrt Allocators in basic_string assignment vs. basic_string::assign by Marshall Clow · 9 years ago
- ff0b9f5 Implement LWG#2583: There is no way to supply an allocator for basic_string(str, pos) by Marshall Clow · 9 years ago
- f532a70 Implement P0272R1: Give 'std::string' a non-const '.data()' member function by Marshall Clow · 9 years ago
- f6d6b51 Implement P0253R1: Fixing a design mistake in the searchers interface. by Marshall Clow · 9 years ago
- df9db31 Fix PR#25973 : 'basic_string::assign(InputIt, InputIt) doesn't provide the strong exception safety guarantee'. This turned out to be a pervasive problem in <string>, which required a fair amount of rework. Add in an optimization for when iterators provide noexcept increment/comparison/assignment/dereference (which covers many of the iterators in libc++). Reviewed as http://reviews.llvm.org/D15862 by Marshall Clow · 9 years ago
- a3b25f8 Cleanup: move visibility/linkage attributes to the first declaration. by Evgeniy Stepanov · 9 years ago
- 4f01aa8 ABI versioning macros for libc++. by Evgeniy Stepanov · 9 years ago
- 7ed093b Implement LWG#2063, and update the issues links to point to the github generated pages by Marshall Clow · 9 years ago
- e2d4892 Fix most GCC warnings during build. Only -Wattribute left. by Eric Fiselier · 9 years ago
- 4f24182 [libcxx] Optimize away unneeded length calculation in basic_string::compare(const char*) by Eric Fiselier · 9 years ago
- af961ed implement more of N4258 - Cleaning up noexcept in the standard library. Specifically add new noexcept stuff to vector and string's move-assignment operations by Marshall Clow · 9 years ago
- 9a3c689 Change char_traits<char16_t>::eof() to return 0xFFFF instead of 0xDFFF. Fixes PR#24342 by Marshall Clow · 9 years ago
- 692177d Enable and fix warnings during the build. by Eric Fiselier · 9 years ago
- 7d914d1 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. by Marshall Clow · 9 years ago
- c912c0c While applying N4258, I forgot about LWG#2455, which modified the modifications. Correct those - h/t: Howard by Marshall Clow · 9 years ago
- 7b193f7 More of N4258 implementation. Mark all of our test_allocators as noexcept constructible. Make the constructors for basic_string noexcept all the time (under C++14). Update tests to reflect the new world order. More to come. by Marshall Clow · 9 years ago
- 6bcbced Rooting out more undefined behavior in char_traits. by Marshall Clow · 10 years ago
- f2e36ef Move the test for zero-length into the char_traits (from string_view). Add tests to char_traits specializations by Marshall Clow · 10 years ago
- b991975 [libcxx] Fix use of operator comma where the types can be user defined by Eric Fiselier · 10 years ago
- 6d9505a Fix char_traits functions for GCC compatibility. by Dan Albert · 10 years ago
- b953610 NFC. Move definition of _LIBCPP_ASSERT into __debug header and remove external include guards. by Eric Fiselier · 10 years ago
- d5549cc Fix bug #20335 - memory leak when move-constructing a string with unequal allocator. Thanks to Thomas Koeppe for the report by Marshall Clow · 10 years ago
- 37025e1 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. by Marshall Clow · 10 years ago
- 360f319 Preparation for <string_view>. More helper functions that can be shared between <string> and <string_view>. No functionality change by Marshall Clow · 10 years ago
- ec34c48 Fix typos by Alp Toker · 10 years ago
- a93b5e2 Implement LWG #2268: Setting a default argument in the declaration of a member function assign of std::basic_string. by Marshall Clow · 11 years ago
- 8eb5acc Remove tabs that crept in during an earlier refactoring. No functionality change by Marshall Clow · 11 years ago
- b671fc9 Refactor some of the operations in <string> so that they can be reused; no functionality change by Marshall Clow · 11 years ago
- ecc8d7b Fix an off-by-one error in basic_string::__grow_by, where it would incorrectly throw length_error (instead of bad_alloc) when attempting to resize the string to 'max_size()'. Add tests for resizing to max_size +/-1 by Marshall Clow · 11 years ago
- 09f8550 Fixes PR17148 by Marshall Clow · 11 years ago
- 8d9dd7a Mark namespaces for user defined literals as 'inline' by Marshall Clow · 11 years ago
- 1e56424 G M: Changes all references to "x inline" to "inline x" where x = _libcpp_always_inline or _libcpp_inline_visibility macros. by Howard Hinnant · 11 years ago
- 499cea1 Debug mode for string. This commit also marks the first time libc++ debug-mode has found a bug (found one in regex). Had to play with extern templates a bit to get this to work since string is heavily used within libc++.dylib. by Howard Hinnant · 11 years ago
- 7f76450 Xing Xue: port to IBM XLC++/AIX. by Howard Hinnant · 11 years ago
- 0f678bd 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>. by Howard Hinnant · 11 years ago
- ab61b2c War on tabs by Howard Hinnant · 11 years ago
- e9df0a5 Nico Rieck: Currently _MSC_VER and _WIN32 are used to guard code which is by Howard Hinnant · 11 years ago
- 1523432 Implement string suffixes from N3642 by Marshall Clow · 11 years ago
- 9dcdcde Implement full support for non-pointer pointers in custom allocators for string. This completes the custom pointer support for the entire library. by Howard Hinnant · 11 years ago
- 1546718 This patch introduces an alternative layout for basic_string which when the string is short, the data pointer will be word-aligned. It can be activated with -D_LIBCPP_ALTERNATE_STRING_LAYOUT. These two different layouts (the default and _LIBCPP_ALTERNATE_STRING_LAYOUT) are not ABI compatible with each other. Once one is chosen for a given platform, it is disruptive to change it. by Howard Hinnant · 11 years ago
- 08dd253 Modest performance improvement for std::string's operator==. by Howard Hinnant · 11 years ago
- 83eade6 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. by Howard Hinnant · 12 years ago