Phil Nash
96355da34e
StringRef no longer repoints m_start to m_data after c_str() on a substring.
...
This fixes an issue where a self-assignment of a StringRef copy would point into internally (and now dangling) data.
(now self-assignment check is no longer needed)
2019-05-21 00:04:44 +01:00
Phil Nash
3bce8ba14b
Fix StringRef self-assignment after substring
...
Thanks to Alex Tkachenko for spotting it.
2019-05-18 17:54:39 +01:00
Jozef Grajciar
bdee512057
small cleanup of code
2019-01-10 13:07:54 +01:00
Martin Hořeňovský
f7f592dfc9
Introduce "C-namespaced" UDL for StringRef
2018-07-23 14:00:45 +02:00
Martin Hořeňovský
05cd05743a
Provide a public method to get StringRef's underlying pointer
...
This allows reducing the amount of friends needed for its interface
and some extra tricks later.
The bad part is that the pointer can become invalidated via
calls to other StringRef's public methods, but c'est la vie.
2018-02-28 22:49:00 +01:00
Martin Hořeňovský
950ccf4749
StringRef appends itself to std::string efficiently
2018-02-28 16:02:25 +01:00
Martin Hořeňovský
4e57661919
StringRef will not take ownership when writing itself to stream
...
This also fixes some tests that were previously failing unnoticed - WTF?
2018-02-17 20:41:50 +01:00
Phil Nash
e54dcdac8b
Added space in StringRef literal operator
2017-11-21 12:09:04 +00:00
Phil Nash
e4a898eaaa
Removed templated StringRef ctor and added StringRef literal
2017-11-21 11:08:39 +00:00
Phil Nash
4353614df7
Added StringRef constructor that captures string literal size at compile time
2017-11-20 16:33:05 +00:00
Neal Coombes
fe725648a7
performance improvement - StringRef::operator=
...
inlined and reduced data copy in half.
Further work on #1086 .
Brings test from 0m44.942s to 0m37.913.
2017-11-17 14:15:26 -06:00
Phil Nash
b0c379f621
Inlined StringRef ctors/ dtor and size() and empty()
2017-11-17 18:38:54 +00:00
Phil Nash
8da0d0473b
qualified a load of size_ts with std:: namespace (all those not from Clara)
2017-09-18 17:13:17 +01:00
Phil Nash
94d347b059
Removed StringData
2017-08-14 09:14:49 +01:00
Phil Nash
3772f69f0f
Removed String and StringBuilder
2017-08-14 09:04:14 +01:00
Phil Nash
fa3535e95e
Added << ostream overload to StringRef
2017-08-14 08:50:44 +01:00
Phil Nash
c659e0fd3d
StringRef conversions to/ from std::string
2017-08-14 08:39:14 +01:00
Phil Nash
b3b29f4b4c
Use size_t for String size types
2017-08-05 22:53:21 +01:00
Phil Nash
519db85758
Report benchmark durations in natural units
...
(and extended StringRef to be able to report utf8 char lengths
2017-08-05 21:41:56 +01:00
Martin Hořeňovský
5ebbec7dab
Move all stringref function bodies out of line
2017-07-27 11:32:04 +02:00
Phil Nash
720fdf1d02
Simplified test case registration and started using StringRefs
2017-07-12 23:11:41 +01:00
Phil Nash
03afbdfec9
Made more of StringRef noexcept
2017-06-29 11:47:09 +01:00
Phil Nash
78e7994435
Added string classes
2017-06-29 11:18:14 +01:00