From b7f705482837eb24fc500e445762482fc4ebea46 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 31 Oct 2012 19:03:08 +0100 Subject: [PATCH] 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. --- include/internal/catch_tags.hpp | 8 ++++++++ single_include/catch.hpp | 10 +++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/include/internal/catch_tags.hpp b/include/internal/catch_tags.hpp index d6060022..c30d6e71 100644 --- a/include/internal/catch_tags.hpp +++ b/include/internal/catch_tags.hpp @@ -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& 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; diff --git a/single_include/catch.hpp b/single_include/catch.hpp index dca88476..85a3d805 100644 --- a/single_include/catch.hpp +++ b/single_include/catch.hpp @@ -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& 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;