22/*
33 * FakeIt - A Simplified C++ Mocking Framework
44 * Copyright (c) Eran Pe'er 2013
5- * Generated: 2022-05-22 19:04:08.688985
5+ * Generated: 2022-06-12 10:26:04.711108
66 * Distributed under the MIT License. Please refer to the LICENSE file at:
77 * https://github.com/eranpeer/FakeIt
88 */
@@ -6372,6 +6372,7 @@ namespace fakeit {
63726372 };
63736373
63746374}
6375+ #include < cmath>
63756376#include < cstring>
63766377
63776378
@@ -7777,7 +7778,7 @@ namespace fakeit {
77777778 template <typename T, int N>
77787779 struct ArgValue
77797780 {
7780- ArgValue (T &&v): value { std::forward<T>(v) } {}
7781+ ArgValue (T &&v): value ( std::forward<T>(v) ) {}
77817782 constexpr static int pos = N;
77827783 T value;
77837784 };
@@ -8070,6 +8071,12 @@ namespace fakeit {
80708071 template <std::size_t N>
80718072 using NakedArgType = typename naked_type<ArgType<index>>::type;
80728073
8074+ template <typename MatcherCreatorT, typename = void >
8075+ struct IsMatcherCreatorTypeCompatible : std::false_type {};
8076+
8077+ template <typename MatcherCreatorT>
8078+ struct IsMatcherCreatorTypeCompatible <MatcherCreatorT, typename std::enable_if<MatcherCreatorT::template IsTypeCompatible<NakedArgType<index>>::value, void >::type> : std::true_type {};
8079+
80738080 MatchersCollector (std::vector<Destructible *> &matchers)
80748081 : _matchers(matchers) {
80758082 }
@@ -8079,6 +8086,8 @@ namespace fakeit {
80798086
80808087 template <typename Head>
80818088 typename std::enable_if<
8089+ !std::is_same<AnyMatcher, typename naked_type<Head>::type>::value &&
8090+ !IsMatcherCreatorTypeCompatible<typename naked_type<Head>::type>::value &&
80828091 std::is_constructible<NakedArgType<index>, Head&&>::value, void >
80838092 ::type CollectMatchers (Head &&value) {
80848093
@@ -8088,7 +8097,7 @@ namespace fakeit {
80888097
80898098 template <typename Head>
80908099 typename std::enable_if<
8091- naked_type<Head>::type:: template IsTypeCompatible<NakedArgType<index> >::value, void >
8100+ IsMatcherCreatorTypeCompatible< typename naked_type<Head>::type>::value, void >
80928101 ::type CollectMatchers (Head &&creator) {
80938102 TypedMatcher<NakedArgType<index>> *d = creator.template createMatcher <NakedArgType<index>>();
80948103 _matchers.push_back (d);
0 commit comments