mirror of
https://github.com/catchorg/Catch2.git
synced 2024-12-23 03:43:28 +01:00
performance improvement - StringRef::operator=
inlined and reduced data copy in half. Further work on #1086. Brings test from 0m44.942s to 0m37.913.
This commit is contained in:
parent
b0c379f621
commit
fe725648a7
@ -17,10 +17,6 @@
|
||||
|
||||
namespace Catch {
|
||||
|
||||
auto StringRef::operator = ( StringRef other ) noexcept -> StringRef& {
|
||||
swap( other );
|
||||
return *this;
|
||||
}
|
||||
StringRef::operator std::string() const {
|
||||
return std::string( m_start, m_size );
|
||||
}
|
||||
|
@ -77,7 +77,14 @@ namespace Catch {
|
||||
delete[] m_data;
|
||||
}
|
||||
|
||||
auto operator = ( StringRef other ) noexcept -> StringRef&;
|
||||
auto operator = ( StringRef const &other ) noexcept -> StringRef& {
|
||||
delete[] m_data;
|
||||
m_data = nullptr;
|
||||
m_start = other.m_start;
|
||||
m_size = other.m_size;
|
||||
return *this;
|
||||
}
|
||||
|
||||
operator std::string() const;
|
||||
|
||||
void swap( StringRef& other ) noexcept;
|
||||
|
Loading…
Reference in New Issue
Block a user