mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	StringRef appends itself to std::string efficiently
This commit is contained in:
		| @@ -65,9 +65,9 @@ namespace Catch { | ||||
|             expr = m_info.capturedExpression; | ||||
|         else { | ||||
|             expr.reserve( m_info.macroName.size() + m_info.capturedExpression.size() + 4 ); | ||||
|             expr += m_info.macroName.c_str(); | ||||
|             expr += m_info.macroName; | ||||
|             expr += "( "; | ||||
|             expr += m_info.capturedExpression.c_str(); | ||||
|             expr += m_info.capturedExpression; | ||||
|             expr += " )"; | ||||
|         } | ||||
|         return expr; | ||||
|   | ||||
| @@ -115,6 +115,11 @@ namespace Catch { | ||||
|         return os.write(str.m_start, str.m_size); | ||||
|     } | ||||
|  | ||||
|     auto operator+=( std::string& lhs, StringRef const& rhs ) -> std::string& { | ||||
|         lhs.append(rhs.m_start, rhs.m_size); | ||||
|         return lhs; | ||||
|     } | ||||
|  | ||||
| } // namespace Catch | ||||
|  | ||||
| #if defined(__clang__) | ||||
|   | ||||
| @@ -92,6 +92,8 @@ namespace Catch { | ||||
|  | ||||
|         auto operator[] ( size_type index ) const noexcept -> char; | ||||
|  | ||||
|         friend auto operator += ( std::string& lhs, StringRef const& rhs ) -> std::string&; | ||||
|  | ||||
|     public: // named queries | ||||
|         auto empty() const noexcept -> bool { | ||||
|             return m_size == 0; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský