Made Colour copyable to remove warning

This commit is contained in:
Phil Nash 2014-07-09 07:36:12 +01:00
parent a31f05fe83
commit a469d9bc0f
2 changed files with 5 additions and 3 deletions

View File

@ -54,14 +54,15 @@ namespace Catch {
// Use constructed object for RAII guard
Colour( Code _colourCode );
Colour( Colour const& other );
~Colour();
// Use static method for one-shot changes
static void use( Code _colourCode );
private:
Colour( Colour const& other );
static Detail::IColourImpl* impl();
bool m_moved;
};
inline std::ostream& operator << ( std::ostream& os, Colour const& ) { return os; }

View File

@ -149,8 +149,9 @@ namespace Catch {
}
}
Colour::Colour( Code _colourCode ){ use( _colourCode ); }
Colour::~Colour(){ use( None ); }
Colour::Colour( Code _colourCode ) : m_moved( false ) { use( _colourCode ); }
Colour::Colour( Colour const& _other ) : m_moved( false ) { const_cast<Colour&>( _other ).m_moved = true; }
Colour::~Colour(){ if( !m_moved ) use( None ); }
void Colour::use( Code _colourCode ) {
impl()->use( _colourCode );
}