diff options
Diffstat (limited to 'vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse')
15 files changed, 332 insertions, 64 deletions
diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/assert.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/assert.h index e25bf501..64981094 100644 --- a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/assert.h +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/assert.h @@ -12,7 +12,27 @@ namespace snowhouse { - class Assert + struct DefaultFailureHandler + { + template <class ExpectedType, class ActualType> + static void Handle(const ExpectedType& expected, const ActualType& actual, const char* file_name, int line_number) + { + std::ostringstream str; + + str << "Expected: " << snowhouse::Stringize(expected) << std::endl; + str << "Actual: " << snowhouse::Stringize(actual) << std::endl; + + throw AssertionException(str.str(), file_name, line_number); + } + + static void Handle(const std::string& message) + { + throw AssertionException(message); + } + }; + + template<typename FailureHandler> + class ConfigurableAssert { public: @@ -22,7 +42,7 @@ namespace snowhouse { const char* no_file = ""; int line_number = 0; - Assert::That(actual, expression, no_file, line_number); + ConfigurableAssert<FailureHandler>::That(actual, expression, no_file, line_number); } template <typename ActualType, typename ConstraintListType> @@ -48,12 +68,12 @@ namespace snowhouse { if (!result.top()) { - throw AssertionException(CreateErrorText(expression, actual), file_name, line_number); + FailureHandler::Handle(expression, actual, file_name, line_number); } } catch (const InvalidExpressionException& e) { - throw AssertionException("Malformed expression: \"" + snowhouse::Stringize(expression) + "\"\n" + e.Message()); + FailureHandler::Handle("Malformed expression: \"" + snowhouse::Stringize(expression) + "\"\n" + e.Message()); } } @@ -76,7 +96,7 @@ namespace snowhouse { { if (!expression(actual)) { - throw AssertionException(CreateErrorText(expression, actual), file_name, line_number); + FailureHandler::Handle(expression, actual, file_name, line_number); } } @@ -90,27 +110,17 @@ namespace snowhouse { { if (!actual) { - throw AssertionException("Expected: true\nActual: false"); + FailureHandler::Handle("Expected: true\nActual: false"); } } static void Failure(const std::string& message) { - throw AssertionException(message); - } - - private: - template <class ExpectedType, class ActualType> - static std::string CreateErrorText(const ExpectedType& expected, const ActualType& actual) - { - std::ostringstream str; - - str << "Expected: " << snowhouse::Stringize(expected) << std::endl; - str << "Actual: " << snowhouse::Stringize(actual) << std::endl; - - return str.str(); + FailureHandler::Handle(message); } }; + + typedef ConfigurableAssert<DefaultFailureHandler> Assert; } #endif // IGLOO_ASSERT_H diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/assertionexception.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/assertionexception.h index 77890a7e..d0747742 100644 --- a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/assertionexception.h +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/assertionexception.h @@ -19,9 +19,19 @@ namespace snowhouse { : m_message(message), m_fileName(fileName), m_line(line) {} +#if __cplusplus > 199711L + AssertionException(const AssertionException&) = default; +#endif + +#if __cplusplus > 199711L + virtual ~AssertionException() noexcept + { + } +#else virtual ~AssertionException() throw() { } +#endif std::string GetMessage() const { diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/assertmacro.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/assertmacro.h index 6ebdfe1f..df5b4b34 100644 --- a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/assertmacro.h +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/assertmacro.h @@ -9,7 +9,14 @@ #include "assert.h" +#define SNOWHOUSE_ASSERT_THAT(p1,p2,FAILURE_HANDLER)\ + ::snowhouse::ConfigurableAssert<FAILURE_HANDLER>::That((p1), (p2), __FILE__, __LINE__);\ + +#ifndef SNOWHOUSE_NO_MACROS + #define AssertThat(p1,p2)\ - Assert::That((p1), (p2), __FILE__, __LINE__);\ + SNOWHOUSE_ASSERT_THAT((p1), (p2), ::snowhouse::DefaultFailureHandler);\ + +#endif // SNOWHOUSE_NO_MACROS #endif // IGLOO_ASSERTMACRO_H diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/constraints.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/constraints.h index ea7a53d1..a12433d1 100644 --- a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/constraints.h +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/constraints.h @@ -12,7 +12,9 @@ #include "equalsconstraint.h"
#include "haslengthconstraint.h"
#include "isgreaterthanconstraint.h"
+#include "isgreaterthanorequaltoconstraint.h"
#include "islessthanconstraint.h"
+#include "islessthanorequaltoconstraint.h"
#include "startswithconstraint.h"
#include "fulfillsconstraint.h"
#include "equalswithdeltaconstraint.h"
diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/equalsconstraint.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/equalsconstraint.h index cbdc4054..a47f6bf4 100644 --- a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/equalsconstraint.h +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/equalsconstraint.h @@ -7,6 +7,8 @@ #ifndef IGLOO_EQUALSCONSTRAINT_H
#define IGLOO_EQUALSCONSTRAINT_H
+#include <cstddef>
+
#include "./expressions/expression.h"
namespace snowhouse {
@@ -49,6 +51,13 @@ namespace snowhouse { return EqualsConstraint<bool>(true);
}
+#if __cplusplus > 199711L
+ inline EqualsConstraint<std::nullptr_t> IsNull()
+ {
+ return EqualsConstraint<std::nullptr_t>(nullptr);
+ }
+#endif
+
template <>
struct Stringizer< EqualsConstraint< bool > >
{
diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/equalscontainerconstraint.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/equalscontainerconstraint.h index 6bb5d797..f8650952 100644 --- a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/equalscontainerconstraint.h +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/equalscontainerconstraint.h @@ -45,7 +45,12 @@ namespace snowhouse { const BinaryPredicate predicate_; private: - EqualsContainerConstraint& operator=(const EqualsContainerConstraint&) { return *this; } + +#if __cplusplus > 199711L +#else + EqualsContainerConstraint& operator=(const EqualsContainerConstraint&) { return *this; } +#endif + }; template< typename ExpectedType> diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/isgreaterthanorequaltoconstraint.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/isgreaterthanorequaltoconstraint.h new file mode 100644 index 00000000..3752887b --- /dev/null +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/isgreaterthanorequaltoconstraint.h @@ -0,0 +1,55 @@ + +// Copyright Joakim Karlsson & Kim Gräsman 2010-2012. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef IGLOO_ISGREATERTHANOREQUALTOCONSTRAINT_H +#define IGLOO_ISGREATERTHANOREQUALTOCONSTRAINT_H + +#include "./expressions/expression.h" + +namespace snowhouse { + + template< typename ExpectedType > + struct IsGreaterThanOrEqualToConstraint : Expression < IsGreaterThanOrEqualToConstraint<ExpectedType> > + { + IsGreaterThanOrEqualToConstraint(const ExpectedType& expected) + : m_expected(expected) + { + } + + template<typename ActualType> + bool operator()(const ActualType& actual) const + { + return (actual >= m_expected); + } + + ExpectedType m_expected; + }; + + template< typename ExpectedType > + inline IsGreaterThanOrEqualToConstraint<ExpectedType> IsGreaterThanOrEqualTo(const ExpectedType& expected) + { + return IsGreaterThanOrEqualToConstraint<ExpectedType>(expected); + } + + inline IsGreaterThanOrEqualToConstraint<std::string> IsGreaterThanOrEqualTo(const char* expected) + { + return IsGreaterThanOrEqualToConstraint<std::string>(expected); + } + + template< typename ExpectedType > + struct Stringizer < IsGreaterThanOrEqualToConstraint< ExpectedType > > + { + static std::string ToString(const IsGreaterThanOrEqualToConstraint<ExpectedType>& constraint) + { + std::ostringstream builder; + builder << "greater than or equal to " << snowhouse::Stringize(constraint.m_expected); + + return builder.str(); + } + }; +} + +#endif diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/islessthanorequaltoconstraint.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/islessthanorequaltoconstraint.h new file mode 100644 index 00000000..36e02ab4 --- /dev/null +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/constraints/islessthanorequaltoconstraint.h @@ -0,0 +1,55 @@ + +// Copyright Joakim Karlsson & Kim Gräsman 2010-2012. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef IGLOO_ISLESSTHANOREQUALTOCONSTRAINT_H +#define IGLOO_ISLESSTHANOREQUALTOCONSTRAINT_H + +#include "./expressions/expression.h" + +namespace snowhouse { + + template< typename ExpectedType > + struct IsLessThanOrEqualToConstraint : Expression < IsLessThanOrEqualToConstraint<ExpectedType> > + { + IsLessThanOrEqualToConstraint(const ExpectedType& expected) + : m_expected(expected) + { + } + + template<typename ActualType> + bool operator()(const ActualType& actual) const + { + return (actual <= m_expected); + } + + ExpectedType m_expected; + }; + + template< typename ExpectedType > + inline IsLessThanOrEqualToConstraint<ExpectedType> IsLessThanOrEqualTo(const ExpectedType& expected) + { + return IsLessThanOrEqualToConstraint<ExpectedType>(expected); + } + + inline IsLessThanOrEqualToConstraint<std::string> IsLessThanOrEqualTo(const char* expected) + { + return IsLessThanOrEqualToConstraint<std::string>(expected); + } + + template< typename ExpectedType > + struct Stringizer < IsLessThanOrEqualToConstraint< ExpectedType > > + { + static std::string ToString(const IsLessThanOrEqualToConstraint<ExpectedType>& constraint) + { + std::ostringstream builder; + builder << "less than or equal to " << snowhouse::Stringize(constraint.m_expected); + + return builder.str(); + } + }; +} + +#endif diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/exceptions.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/exceptions.h index 03b879ef..22ad11ef 100644 --- a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/exceptions.h +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/exceptions.h @@ -15,37 +15,70 @@ namespace snowhouse { class ExceptionStorage { public: - static std::auto_ptr<ExceptionType>& last_exception() + static void last_exception(ExceptionType*** e, bool clear=false) { - static std::auto_ptr<ExceptionType> last; - return last; + static ExceptionType* last = NULL; + if(clear && last) + { + delete last; + return; + } + + *e = &last; + silly_warning_about_unused_arg(e); + } + + static ExceptionType*** silly_warning_about_unused_arg(ExceptionType*** e) + { + return e; + } + + static void store(const ExceptionType& e) + { + ExceptionType** last = NULL; + last_exception(&last); + if(*last) + { + delete *last; + *last = NULL; + } + + *last = new ExceptionType(e); } void compiler_thinks_i_am_unused() {} ~ExceptionStorage() { - last_exception().reset(NULL); + ExceptionType** e = NULL; + last_exception(&e); + if(*e) + { + delete *e; + *e = NULL; + } } }; template <typename ExceptionType> inline ExceptionType& LastException() { - if(ExceptionStorage<ExceptionType>::last_exception().get() == NULL) + ExceptionType** e = NULL; + ExceptionStorage<ExceptionType>::last_exception(&e); + if(*e == NULL) { Assert::Failure("No exception was stored"); } - return *(ExceptionStorage<ExceptionType>::last_exception().get()); + return **e; } } #define IGLOO_CONCAT2(a, b) a##b #define IGLOO_CONCAT(a, b) IGLOO_CONCAT2(a, b) -#define AssertThrows(EXCEPTION_TYPE, METHOD) \ -ExceptionStorage<EXCEPTION_TYPE> IGLOO_CONCAT(IGLOO_storage_, __LINE__); IGLOO_CONCAT(IGLOO_storage_, __LINE__).compiler_thinks_i_am_unused(); \ +#define SNOWHOUSE_ASSERT_THROWS(EXCEPTION_TYPE, METHOD, FAILURE_HANDLER_TYPE) \ +::snowhouse::ExceptionStorage<EXCEPTION_TYPE> IGLOO_CONCAT(IGLOO_storage_, __LINE__); IGLOO_CONCAT(IGLOO_storage_, __LINE__).compiler_thinks_i_am_unused(); \ { \ bool wrong_exception = false; \ bool no_exception = false; \ @@ -56,7 +89,7 @@ ExceptionStorage<EXCEPTION_TYPE> IGLOO_CONCAT(IGLOO_storage_, __LINE__); IGLOO_C } \ catch (const EXCEPTION_TYPE& e) \ { \ - ExceptionStorage<EXCEPTION_TYPE>::last_exception() = std::auto_ptr<EXCEPTION_TYPE>(new EXCEPTION_TYPE(e)); \ + ::snowhouse::ExceptionStorage<EXCEPTION_TYPE>::store(e); \ } \ catch(...) \ { \ @@ -66,16 +99,22 @@ ExceptionStorage<EXCEPTION_TYPE> IGLOO_CONCAT(IGLOO_storage_, __LINE__); IGLOO_C { \ std::ostringstream stm; \ stm << "Expected " << #EXCEPTION_TYPE << ". No exception was thrown."; \ - Assert::Failure(stm.str()); \ + ::snowhouse::ConfigurableAssert<FAILURE_HANDLER_TYPE>::Failure(stm.str()); \ } \ if(wrong_exception) \ { \ std::ostringstream stm; \ stm << "Expected " << #EXCEPTION_TYPE << ". Wrong exception was thrown."; \ - Assert::Failure(stm.str()); \ + ::snowhouse::ConfigurableAssert<FAILURE_HANDLER_TYPE>::Failure(stm.str()); \ } \ } +#ifndef SNOWHOUSE_NO_MACROS + +#define AssertThrows(EXCEPTION_TYPE, METHOD) SNOWHOUSE_ASSERT_THROWS(EXCEPTION_TYPE, (METHOD), ::snowhouse::DefaultFailureHandler) + +#endif // SNOWHOUSE_NO_MACROS + #endif diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/expressionbuilder.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/expressionbuilder.h index 20bf1358..f0889f1d 100644 --- a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/expressionbuilder.h +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/expressionbuilder.h @@ -7,6 +7,8 @@ #ifndef IGLOO_EXPRESSIONBUILDER_H #define IGLOO_EXPRESSIONBUILDER_H +#include <cstddef> + namespace snowhouse { // ---- Evaluation of list of constraints @@ -27,7 +29,7 @@ namespace snowhouse { ExpressionBuilder(const ConstraintListType& list) : m_constraint_list(list) { } - + template <typename ExpectedType> ExpressionBuilder<typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapter<EqualsConstraint<ExpectedType> >, Nil> >::t> EqualTo(const ExpectedType& expected) @@ -79,24 +81,44 @@ namespace snowhouse { return EqualTo<bool>(true); } +#if __cplusplus > 199711L + ExpressionBuilder<typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapter<EqualsConstraint<std::nullptr_t> >, Nil> >::t> + Null() + { + return EqualTo<std::nullptr_t>(nullptr); + } +#endif + ExpressionBuilder<typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapter<EqualsConstraint<std::string> >, Nil> >::t> EqualTo(const char* expected) { return EqualTo<std::string>(std::string(expected)); } - template <typename ExpectedType> - ExpressionBuilder<typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapter<IsGreaterThanConstraint<ExpectedType> >, Nil> >::t> - GreaterThan(const ExpectedType& expected) - { - typedef ConstraintAdapter<IsGreaterThanConstraint<ExpectedType> > ConstraintAdapterType; - - typedef ExpressionBuilder< typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapterType, Nil> >::t > BuilderType; - ConstraintAdapterType constraint(expected); - ConstraintList<ConstraintAdapterType, Nil> node(constraint, Nil()); - return BuilderType(Concatenate(m_constraint_list, node)); - } - + template <typename ExpectedType> + ExpressionBuilder<typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapter<IsGreaterThanConstraint<ExpectedType> >, Nil> >::t> + GreaterThan(const ExpectedType& expected) + { + typedef ConstraintAdapter<IsGreaterThanConstraint<ExpectedType> > ConstraintAdapterType; + + typedef ExpressionBuilder< typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapterType, Nil> >::t > BuilderType; + ConstraintAdapterType constraint(expected); + ConstraintList<ConstraintAdapterType, Nil> node(constraint, Nil()); + return BuilderType(Concatenate(m_constraint_list, node)); + } + + template <typename ExpectedType> + ExpressionBuilder<typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapter<IsGreaterThanOrEqualToConstraint<ExpectedType> >, Nil> >::t> + GreaterThanOrEqualTo(const ExpectedType& expected) + { + typedef ConstraintAdapter<IsGreaterThanOrEqualToConstraint<ExpectedType> > ConstraintAdapterType; + + typedef ExpressionBuilder< typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapterType, Nil> >::t > BuilderType; + ConstraintAdapterType constraint(expected); + ConstraintList<ConstraintAdapterType, Nil> node(constraint, Nil()); + return BuilderType(Concatenate(m_constraint_list, node)); + } + template <typename ExpectedType> ExpressionBuilder<typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapter<IsLessThanConstraint<ExpectedType> >, Nil> >::t> LessThan(const ExpectedType& expected) @@ -109,6 +131,18 @@ namespace snowhouse { return BuilderType(Concatenate(m_constraint_list, node)); } + template <typename ExpectedType> + ExpressionBuilder<typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapter<IsLessThanOrEqualToConstraint<ExpectedType> >, Nil> >::t> + LessThanOrEqualTo(const ExpectedType& expected) + { + typedef ConstraintAdapter<IsLessThanOrEqualToConstraint<ExpectedType> > ConstraintAdapterType; + + typedef ExpressionBuilder< typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapterType, Nil> >::t > BuilderType; + ConstraintAdapterType constraint(expected); + ConstraintList<ConstraintAdapterType, Nil> node(constraint, Nil()); + return BuilderType(Concatenate(m_constraint_list, node)); + } + template <typename ExpectedType> ExpressionBuilder<typename type_concat<ConstraintListType, ConstraintList<ConstraintAdapter<ContainsConstraint<ExpectedType> >, Nil> >::t> Containing(const ExpectedType& expected) diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/operators/collections/collectionconstraintevaluator.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/operators/collections/collectionconstraintevaluator.h index cc9a3aef..3fa30f2c 100644 --- a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/operators/collections/collectionconstraintevaluator.h +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/operators/collections/collectionconstraintevaluator.h @@ -8,7 +8,7 @@ #define IGLOO_COLLECTIONCONSTRAINTEVALUATOR_H #include <string> -#include "../../../assertionexception.h" +#include "../invalidexpressionexception.h" namespace snowhouse { @@ -91,7 +91,7 @@ private: std::ostringstream stm; stm << "This string seems to contain an invalid line ending at position " << newline << ":\n" << str << std::endl; - throw AssertionException(stm.str()); + throw InvalidExpressionException(stm.str()); } }; diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/operators/constraintoperator.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/operators/constraintoperator.h index 31c19b50..eafe6c51 100644 --- a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/operators/constraintoperator.h +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/operators/constraintoperator.h @@ -7,29 +7,20 @@ #ifndef IGLOO_CONTRAINTOPERATOR_H #define IGLOO_CONTRAINTOPERATOR_H -namespace snowhouse { - - struct InvalidExpressionException - { - InvalidExpressionException(const std::string& message) : m_message(message) - { - } - - const std::string& Message() const - { - return m_message; - } +#include "invalidexpressionexception.h" - std::string m_message; - }; +namespace snowhouse { struct ConstraintOperator { +#if __cplusplus > 199711L +#else virtual ~ConstraintOperator() {} - +#endif + virtual void PerformOperation(ResultStack& result) = 0; virtual int Precedence() const = 0; - + template <typename ConstraintListType, typename ActualType> static bool EvaluateElementAgainstRestOfExpression(ConstraintListType& list, const ActualType& actual) { diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/operators/invalidexpressionexception.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/operators/invalidexpressionexception.h new file mode 100644 index 00000000..404341f1 --- /dev/null +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/fluent/operators/invalidexpressionexception.h @@ -0,0 +1,28 @@ + +// Copyright Joakim Karlsson & Kim Gräsman 2010-2012. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef IGLOO_INVALUDEXPRESSIONEXCEPTION_H +#define IGLOO_INVALUDEXPRESSIONEXCEPTION_H + +namespace snowhouse { + + struct InvalidExpressionException + { + InvalidExpressionException(const std::string& message) : m_message(message) + { + } + + const std::string& Message() const + { + return m_message; + } + + std::string m_message; + }; + +} + +#endif // IGLOO_INVALUDEXPRESSIONEXCEPTION_H diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/snowhouse.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/snowhouse.h index 4c36968e..38214aa7 100644 --- a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/snowhouse.h +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/snowhouse.h @@ -1,7 +1,16 @@ #ifndef _SNOWHOUSE_H_JK_2013_06_28 #define _SNOWHOUSE_H_JK_2013_06_28 -#define SNOWHOUSE_VERSION "1.0.2" +#define SNOWHOUSE_VERSION "2.1.0" + +#if __cplusplus > 199711L +#ifdef _MSC_VER +// Visual Studio (including 2013) does not support the noexcept keyword +#define _ALLOW_KEYWORD_MACROS +#define noexcept +#endif +#endif + #include <iostream> #include <map> diff --git a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/stringize.h b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/stringize.h index ba2a0175..42249f57 100644 --- a/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/stringize.h +++ b/vendor/bandit/bandit/assertion_frameworks/snowhouse/snowhouse/stringize.h @@ -7,6 +7,8 @@ #ifndef IGLOO_STRINGIZE_H
#define IGLOO_STRINGIZE_H
+#include <cstddef>
+
namespace snowhouse {
namespace detail {
@@ -85,6 +87,18 @@ namespace snowhouse { return detail::DefaultStringizer< T, detail::is_output_streamable<T>::value >::ToString(value);
}
};
+
+#if __cplusplus > 199711L
+ // We need this because nullptr_t has ambiguous overloads of operator<< in the standard library.
+ template<>
+ struct Stringizer<std::nullptr_t>
+ {
+ static std::string ToString(std::nullptr_t)
+ {
+ return "nullptr";
+ }
+ };
+#endif
}
#endif
|