mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Fix significant bug with storing composed matchers
Given that in the 2 or so years that matchers are thing nobody complained, it seems that people do not actually write this sort of code, and the possibility will be removed in v3. However, to avoid correctness bugs, we will have to support this weird code in v2.
This commit is contained in:
		| @@ -91,9 +91,10 @@ namespace Matchers { | ||||
|                 return description; | ||||
|             } | ||||
|  | ||||
|             MatchAllOf<ArgT>& operator && ( MatcherBase<ArgT> const& other ) { | ||||
|                 m_matchers.push_back( &other ); | ||||
|                 return *this; | ||||
|             MatchAllOf<ArgT> operator && ( MatcherBase<ArgT> const& other ) { | ||||
|                 auto copy(*this); | ||||
|                 copy.m_matchers.push_back( &other ); | ||||
|                 return copy; | ||||
|             } | ||||
|  | ||||
|             std::vector<MatcherBase<ArgT> const*> m_matchers; | ||||
| @@ -124,9 +125,10 @@ namespace Matchers { | ||||
|                 return description; | ||||
|             } | ||||
|  | ||||
|             MatchAnyOf<ArgT>& operator || ( MatcherBase<ArgT> const& other ) { | ||||
|                 m_matchers.push_back( &other ); | ||||
|                 return *this; | ||||
|             MatchAnyOf<ArgT> operator || ( MatcherBase<ArgT> const& other ) { | ||||
|                 auto copy(*this); | ||||
|                 copy.m_matchers.push_back( &other ); | ||||
|                 return copy; | ||||
|             } | ||||
|  | ||||
|             std::vector<MatcherBase<ArgT> const*> m_matchers; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský