diff options
| author | Phil Nash | 2017-08-14 09:04:14 +0100 |
|---|---|---|
| committer | Phil Nash | 2017-08-14 09:04:14 +0100 |
| commit | 3772f69f0fbba0620df4c262b1925444a0567b37 (patch) | |
| tree | 684dfe257d34c22ff48826ffc7572f14aecb145e /include/internal/catch_stringref.cpp | |
| parent | ece64c3b3aee6256be32f1f860b5d638173e7520 (diff) | |
| download | catch3-3772f69f0fbba0620df4c262b1925444a0567b37.tar.gz | |
Removed String and StringBuilder
Diffstat (limited to 'include/internal/catch_stringref.cpp')
| -rw-r--r-- | include/internal/catch_stringref.cpp | 44 |
1 files changed, 15 insertions, 29 deletions
diff --git a/include/internal/catch_stringref.cpp b/include/internal/catch_stringref.cpp index 7d117018..61e001bc 100644 --- a/include/internal/catch_stringref.cpp +++ b/include/internal/catch_stringref.cpp @@ -6,8 +6,6 @@ */ #include "catch_stringref.h" -#include "catch_stringbuilder.h" -#include "catch_string.h" #include "catch_stringdata.h" #include <cstring> @@ -58,18 +56,6 @@ namespace Catch { m_size = rawSize; } - StringRef::StringRef( String const& other ) noexcept - : m_start( other.c_str() ), - m_size( other.size() ) - {} - - StringRef::StringRef( String&& str ) noexcept - : m_start( str.c_str() ), - m_size( str.size() ), - m_data( str.m_data ) - { - str.m_data = StringData::getEmpty(); - } StringRef::StringRef( std::string const& stdString ) noexcept : m_start( stdString.c_str() ), m_size( stdString.size() ) @@ -112,9 +98,9 @@ namespace Catch { void StringRef::takeOwnership() { if( !isOwned() ) { - StringRef temp = String( *this ); - swap( temp ); - } + m_data = StringData::create( *this ); + m_start = m_data->chars; + } } auto StringRef::substr( size_type start, size_type size ) const noexcept -> StringRef { if( start < m_size ) @@ -159,18 +145,18 @@ namespace Catch { return noChars; } - auto operator + ( StringRef const& lhs, StringRef const& rhs ) -> String { - StringBuilder buf; - buf.reserve( lhs.size() + rhs.size() ); - buf.append( lhs ); - buf.append( rhs ); - return String( std::move( buf ) ); - } - auto operator + ( StringRef const& lhs, const char* rhs ) -> String { - return lhs + StringRef( rhs ); - } - auto operator + ( char const* lhs, StringRef const& rhs ) -> String { - return StringRef( lhs ) + rhs; + auto operator + ( StringRef const& lhs, StringRef const& rhs ) -> std::string { + std::string str; + str.reserve( lhs.size() + rhs.size() ); + str += lhs; + str += rhs; + return str; + } + auto operator + ( StringRef const& lhs, const char* rhs ) -> std::string { + return std::string( lhs ) + std::string( rhs ); + } + auto operator + ( char const* lhs, StringRef const& rhs ) -> std::string { + return std::string( lhs ) + std::string( rhs ); } auto operator << ( std::ostream& os, StringRef const& str ) -> std::ostream& { |