remove custom implementations of std::is_same

This commit is contained in:
Krystian Kuzniarek
2019-08-13 22:30:12 +02:00
parent 90a443f9c2
commit ec49fbca4c
9 changed files with 33 additions and 56 deletions

View File

@@ -67,6 +67,7 @@
#include <set>
#include <sstream>
#include <string>
#include <type_traits>
#include <utility>
#include <vector>
#include "gmock/gmock-actions.h"
@@ -1653,9 +1654,8 @@ class FunctionMocker<R(Args...)> final : public UntypedFunctionMockerBase {
const OnCallSpec<F>* const spec = FindOnCallSpec(args);
if (spec == nullptr) {
*os << (internal::type_equals<Result, void>::value ?
"returning directly.\n" :
"returning default value.\n");
*os << (std::is_void<Result>::value ? "returning directly.\n"
: "returning default value.\n");
} else {
*os << "taking default action specified at:\n"
<< FormatFileLocation(spec->file(), spec->line()) << "\n";

View File

@@ -359,10 +359,6 @@ GTEST_API_ WithoutMatchers GetWithoutMatchers();
template <typename T> struct is_reference : public false_type {};
template <typename T> struct is_reference<T&> : public true_type {};
// type_equals<T1, T2>::value is non-zero if T1 and T2 are the same type.
template <typename T1, typename T2> struct type_equals : public false_type {};
template <typename T> struct type_equals<T, T> : public true_type {};
// remove_reference<T>::type removes the reference from type T, if any.
template <typename T> struct remove_reference { typedef T type; }; // NOLINT
template <typename T> struct remove_reference<T&> { typedef T type; }; // NOLINT

View File

@@ -38,6 +38,7 @@
#include <memory>
#include <string>
#include <sstream>
#include <type_traits>
#include <vector>
#include "gmock/gmock.h"
#include "gmock/internal/gmock-port.h"
@@ -518,19 +519,12 @@ TEST(TypeTraitsTest, is_reference) {
EXPECT_TRUE(is_reference<const int&>::value);
}
TEST(TypeTraitsTest, type_equals) {
EXPECT_FALSE((type_equals<int, const int>::value));
EXPECT_FALSE((type_equals<int, int&>::value));
EXPECT_FALSE((type_equals<int, double>::value));
EXPECT_TRUE((type_equals<char, char>::value));
}
TEST(TypeTraitsTest, remove_reference) {
EXPECT_TRUE((type_equals<char, remove_reference<char&>::type>::value));
EXPECT_TRUE((type_equals<const int,
remove_reference<const int&>::type>::value));
EXPECT_TRUE((type_equals<int, remove_reference<int>::type>::value));
EXPECT_TRUE((type_equals<double*, remove_reference<double*>::type>::value));
EXPECT_TRUE((std::is_same<char, remove_reference<char&>::type>::value));
EXPECT_TRUE(
(std::is_same<const int, remove_reference<const int&>::type>::value));
EXPECT_TRUE((std::is_same<int, remove_reference<int>::type>::value));
EXPECT_TRUE((std::is_same<double*, remove_reference<double*>::type>::value));
}
#if GTEST_HAS_STREAM_REDIRECTION

View File

@@ -6434,7 +6434,7 @@ class SampleVariantIntString {
template <typename T>
friend bool holds_alternative(const SampleVariantIntString& value) {
return value.has_int_ == internal::IsSame<T, int>::value;
return value.has_int_ == std::is_same<T, int>::value;
}
template <typename T>