mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 12:17:11 +01:00 
			
		
		
		
	Use char literal instead of string literal with 1 char
In reality, this is a relatively small performance improvement, especially with the previous improvements removing lots of superfluous string handling, but still was measurable.
This commit is contained in:
		| @@ -56,7 +56,7 @@ namespace Catch { | ||||
|  | ||||
|     std::string AssertionResult::getExpression() const { | ||||
|         if( isFalseTest( m_info.resultDisposition ) ) | ||||
|             return "!" + m_info.capturedExpression; | ||||
|             return '!' + m_info.capturedExpression; | ||||
|         else | ||||
|             return m_info.capturedExpression; | ||||
|     } | ||||
|   | ||||
| @@ -30,7 +30,7 @@ namespace Catch { | ||||
|         if( _warning == "NoAssertions" ) | ||||
|             config.warnings = static_cast<WarnAbout::What>( config.warnings | WarnAbout::NoAssertions ); | ||||
|         else | ||||
|             throw std::runtime_error( "Unrecognised warning: '" + _warning + "'" ); | ||||
|             throw std::runtime_error( "Unrecognised warning: '" + _warning + '\'' ); | ||||
|     } | ||||
|     inline void setOrder( ConfigData& config, std::string const& order ) { | ||||
|         if( startsWith( "declared", order ) ) | ||||
| @@ -40,7 +40,7 @@ namespace Catch { | ||||
|         else if( startsWith( "random", order ) ) | ||||
|             config.runOrder = RunTests::InRandomOrder; | ||||
|         else | ||||
|             throw std::runtime_error( "Unrecognised ordering: '" + order + "'" ); | ||||
|             throw std::runtime_error( "Unrecognised ordering: '" + order + '\'' ); | ||||
|     } | ||||
|     inline void setRngSeed( ConfigData& config, std::string const& seed ) { | ||||
|         if( seed == "time" ) { | ||||
| @@ -88,7 +88,7 @@ namespace Catch { | ||||
|             line = trim(line); | ||||
|             if( !line.empty() && !startsWith( line, '#' ) ) { | ||||
|                 if( !startsWith( line, '"' ) ) | ||||
|                     line = "\"" + line + "\""; | ||||
|                     line = '"' + line + '"'; | ||||
|                 addTestOrTags( config, line + ',' ); | ||||
|             } | ||||
|         } | ||||
|   | ||||
| @@ -71,9 +71,9 @@ namespace Catch { | ||||
|     {} | ||||
|  | ||||
|     std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ) { | ||||
|         os << pluraliser.m_count << " " << pluraliser.m_label; | ||||
|         os << pluraliser.m_count << ' ' << pluraliser.m_label; | ||||
|         if( pluraliser.m_count != 1 ) | ||||
|             os << "s"; | ||||
|             os << 's'; | ||||
|         return os; | ||||
|     } | ||||
|  | ||||
| @@ -111,7 +111,7 @@ namespace Catch { | ||||
|  | ||||
|     void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ) { | ||||
|         std::ostringstream oss; | ||||
|         oss << locationInfo << ": Internal Catch error: '" << message << "'"; | ||||
|         oss << locationInfo << ": Internal Catch error: '" << message << '\''; | ||||
|         if( alwaysTrue() ) | ||||
|             throw std::logic_error( oss.str() ); | ||||
|     } | ||||
|   | ||||
| @@ -69,7 +69,7 @@ namespace Catch { | ||||
|             matchedTests++; | ||||
|             TestCaseInfo const& testCaseInfo = it->getTestCaseInfo(); | ||||
|             if( startsWith( testCaseInfo.name, '#' ) ) | ||||
|                Catch::cout() << "\"" << testCaseInfo.name << "\"" << std::endl; | ||||
|                Catch::cout() << '"' << testCaseInfo.name << '"' << std::endl; | ||||
|             else | ||||
|                Catch::cout() << testCaseInfo.name << std::endl; | ||||
|         } | ||||
| @@ -132,9 +132,9 @@ namespace Catch { | ||||
|                                                     .setInitialIndent( 0 ) | ||||
|                                                     .setIndent( oss.str().size() ) | ||||
|                                                     .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) ); | ||||
|             Catch::cout() << oss.str() << wrapper << "\n"; | ||||
|             Catch::cout() << oss.str() << wrapper << '\n'; | ||||
|         } | ||||
|         Catch::cout() << pluralise( tagCounts.size(), "tag" ) << "\n" << std::endl; | ||||
|         Catch::cout() << pluralise( tagCounts.size(), "tag" ) << '\n' << std::endl; | ||||
|         return tagCounts.size(); | ||||
|     } | ||||
|  | ||||
| @@ -153,9 +153,9 @@ namespace Catch { | ||||
|                                                         .setWidth( CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen-8 ) ); | ||||
|             Catch::cout() << "  " | ||||
|                     << it->first | ||||
|                     << ":" | ||||
|                     << ':' | ||||
|                     << std::string( maxNameLen - it->first.size() + 2, ' ' ) | ||||
|                     << wrapper << "\n"; | ||||
|                     << wrapper << '\n'; | ||||
|         } | ||||
|         Catch::cout() << std::endl; | ||||
|         return factories.size(); | ||||
|   | ||||
| @@ -202,7 +202,7 @@ namespace Matchers { | ||||
|                 return m_data.m_str == m_data.adjustString( expr );; | ||||
|             } | ||||
|             virtual std::string toString() const { | ||||
|                 return "equals: \"" + m_data.m_str + "\"" + m_data.toStringSuffix(); | ||||
|                 return "equals: \"" + m_data.m_str + '"' + m_data.toStringSuffix(); | ||||
|             } | ||||
|  | ||||
|             CasedString m_data; | ||||
| @@ -219,7 +219,7 @@ namespace Matchers { | ||||
|                 return m_data.adjustString( expr ).find( m_data.m_str ) != std::string::npos; | ||||
|             } | ||||
|             virtual std::string toString() const { | ||||
|                 return "contains: \"" + m_data.m_str  + "\"" + m_data.toStringSuffix(); | ||||
|                 return "contains: \"" + m_data.m_str  + '"' + m_data.toStringSuffix(); | ||||
|             } | ||||
|  | ||||
|             CasedString m_data; | ||||
| @@ -237,7 +237,7 @@ namespace Matchers { | ||||
|                 return startsWith( m_data.adjustString( expr ), m_data.m_str ); | ||||
|             } | ||||
|             virtual std::string toString() const { | ||||
|                 return "starts with: \"" + m_data.m_str + "\"" + m_data.toStringSuffix(); | ||||
|                 return "starts with: \"" + m_data.m_str + '"' + m_data.toStringSuffix(); | ||||
|             } | ||||
|  | ||||
|             CasedString m_data; | ||||
| @@ -254,7 +254,7 @@ namespace Matchers { | ||||
|                 return endsWith( m_data.adjustString( expr ), m_data.m_str ); | ||||
|             } | ||||
|             virtual std::string toString() const { | ||||
|                 return "ends with: \"" + m_data.m_str + "\"" + m_data.toStringSuffix(); | ||||
|                 return "ends with: \"" + m_data.m_str + '"' + m_data.toStringSuffix(); | ||||
|             } | ||||
|  | ||||
|             CasedString m_data; | ||||
|   | ||||
| @@ -61,7 +61,7 @@ namespace Catch { | ||||
|         m_ofs.open( filename.c_str() ); | ||||
|         if( m_ofs.fail() ) { | ||||
|             std::ostringstream oss; | ||||
|             oss << "Unable to open file: '" << filename << "'"; | ||||
|             oss << "Unable to open file: '" << filename << '\''; | ||||
|             throw std::domain_error( oss.str() ); | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -102,7 +102,7 @@ namespace Catch { | ||||
|  | ||||
|         std::ostringstream oss; | ||||
|         for( std::set<std::string>::const_iterator it = tags.begin(), itEnd = tags.end(); it != itEnd; ++it ) { | ||||
|             oss << "[" << *it << "]"; | ||||
|             oss << '[' << *it << ']'; | ||||
|             std::string lcaseTag = toLower( *it ); | ||||
|             testCaseInfo.properties = static_cast<TestCaseInfo::SpecialProperties>( testCaseInfo.properties | parseSpecialTag( lcaseTag ) ); | ||||
|             testCaseInfo.lcaseTags.insert( lcaseTag ); | ||||
|   | ||||
| @@ -69,7 +69,7 @@ std::string toString( std::string const& value ) { | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     return "\"" + s + "\""; | ||||
|     return '"' + s + '"'; | ||||
| } | ||||
| std::string toString( std::wstring const& value ) { | ||||
|  | ||||
| @@ -138,7 +138,7 @@ std::string toString( const double value ) { | ||||
|     return fpToString( value, 10 ); | ||||
| } | ||||
| std::string toString( const float value ) { | ||||
|     return fpToString( value, 5 ) + "f"; | ||||
|     return fpToString( value, 5 ) + 'f'; | ||||
| } | ||||
|  | ||||
| std::string toString( bool value ) { | ||||
|   | ||||
| @@ -26,13 +26,13 @@ namespace Catch { | ||||
|     {} | ||||
|  | ||||
|     std::ostream& operator << ( std::ostream& os, Version const& version ) { | ||||
|         os  << version.majorVersion << "." | ||||
|             << version.minorVersion << "." | ||||
|         os  << version.majorVersion << '.' | ||||
|             << version.minorVersion << '.' | ||||
|             << version.patchNumber; | ||||
|  | ||||
|         if( !version.branchName.empty() ) { | ||||
|             os  << "-" << version.branchName | ||||
|                 << "." << version.buildNumber; | ||||
|             os  << '-' << version.branchName | ||||
|                 << '.' << version.buildNumber; | ||||
|         } | ||||
|         return os; | ||||
|     } | ||||
|   | ||||
| @@ -136,7 +136,7 @@ namespace Catch { | ||||
|         XmlWriter& startElement( std::string const& name ) { | ||||
|             ensureTagClosed(); | ||||
|             newlineIfNecessary(); | ||||
|             stream() << m_indent << "<" << name; | ||||
|             stream() << m_indent << '<' << name; | ||||
|             m_tags.push_back( name ); | ||||
|             m_indent += "  "; | ||||
|             m_tagIsOpen = true; | ||||
| @@ -165,12 +165,12 @@ namespace Catch { | ||||
|  | ||||
|         XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) { | ||||
|             if( !name.empty() && !attribute.empty() ) | ||||
|                 stream() << " " << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << "\""; | ||||
|                 stream() << ' ' << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << '"'; | ||||
|             return *this; | ||||
|         } | ||||
|  | ||||
|         XmlWriter& writeAttribute( std::string const& name, bool attribute ) { | ||||
|             stream() << " " << name << "=\"" << ( attribute ? "true" : "false" ) << "\""; | ||||
|             stream() << ' ' << name << "=\"" << ( attribute ? "true" : "false" ) << '"'; | ||||
|             return *this; | ||||
|         } | ||||
|  | ||||
| @@ -227,7 +227,7 @@ namespace Catch { | ||||
|  | ||||
|         void newlineIfNecessary() { | ||||
|             if( m_needsNewline ) { | ||||
|                 stream() << "\n"; | ||||
|                 stream() << '\n'; | ||||
|                 m_needsNewline = false; | ||||
|             } | ||||
|         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský