Fix harmless but annoying MSVC warnings.

Suppress

catch.hpp(1760) : warning C4512: 'Catch::TagExtracter' : assignment operator could not be generated
catch.hpp(1864) : warning C4512: 'Catch::TagExpressionParser' : assignment operator could not be generated

warnings given by MSVC 9 (and probably other version too) compiler with /W4 switch.

The warnings are given because the compiler can't synthesize the assignment
operators for the classes with members of reference type, so simply explicitly
declare (without defining) these operators ourselves to suppress them.
This commit is contained in:
Vadim Zeitlin 2012-10-31 19:03:08 +01:00
parent 105726f8e4
commit b7f7054828
2 changed files with 17 additions and 1 deletions

View File

@ -74,6 +74,10 @@ namespace Catch {
m_remainder += c;
}
// Suppress assignment operator to avoid warnings from MSVC saying that
// it can't be implicitly synthesized.
TagExtracter& operator=(const TagExtracter&);
std::set<std::string>& m_tags;
std::string m_remainder;
};
@ -177,6 +181,10 @@ namespace Catch {
m_exp.m_tagSets.push_back( m_currentTagSet );
}
// Suppress assignment operator to avoid warnings from MSVC saying that
// it can't be implicitly synthesized.
TagExpressionParser& operator=(const TagExpressionParser&);
bool m_isNegated;
TagSet m_currentTagSet;
TagExpression& m_exp;

View File

@ -1,5 +1,5 @@
/*
* Generated: 2012-10-12 18:17:54.059305
* Generated: 2012-10-31 19:15:51.281013
* ----------------------------------------------------------
* This file has been merged from multiple headers. Please don't edit it directly
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
@ -1755,6 +1755,10 @@ namespace Catch {
m_remainder += c;
}
// Suppress assignment operator to avoid warnings from MSVC saying that
// it can't be implicitly synthesized.
TagExtracter& operator=(const TagExtracter&);
std::set<std::string>& m_tags;
std::string m_remainder;
};
@ -1858,6 +1862,10 @@ namespace Catch {
m_exp.m_tagSets.push_back( m_currentTagSet );
}
// Suppress assignment operator to avoid warnings from MSVC saying that
// it can't be implicitly synthesized.
TagExpressionParser& operator=(const TagExpressionParser&);
bool m_isNegated;
TagSet m_currentTagSet;
TagExpression& m_exp;