Merge pull request #2398 from kuzkry:custom-type-traits-iterator_traits
PiperOrigin-RevId: 266136896
This commit is contained in:
commit
565f1b8482
|
@ -174,6 +174,7 @@ TEST_P(DerivedTest, DoesBlah) {
|
||||||
|
|
||||||
#endif // 0
|
#endif // 0
|
||||||
|
|
||||||
|
#include <iterator>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include "gtest/internal/gtest-internal.h"
|
#include "gtest/internal/gtest-internal.h"
|
||||||
|
@ -292,10 +293,9 @@ internal::ParamGenerator<T> Range(T start, T end) {
|
||||||
//
|
//
|
||||||
template <typename ForwardIterator>
|
template <typename ForwardIterator>
|
||||||
internal::ParamGenerator<
|
internal::ParamGenerator<
|
||||||
typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
|
typename std::iterator_traits<ForwardIterator>::value_type>
|
||||||
ValuesIn(ForwardIterator begin, ForwardIterator end) {
|
ValuesIn(ForwardIterator begin, ForwardIterator end) {
|
||||||
typedef typename ::testing::internal::IteratorTraits<ForwardIterator>
|
typedef typename std::iterator_traits<ForwardIterator>::value_type ParamType;
|
||||||
::value_type ParamType;
|
|
||||||
return internal::ParamGenerator<ParamType>(
|
return internal::ParamGenerator<ParamType>(
|
||||||
new internal::ValuesInIteratorRangeGenerator<ParamType>(begin, end));
|
new internal::ValuesInIteratorRangeGenerator<ParamType>(begin, end));
|
||||||
}
|
}
|
||||||
|
|
|
@ -202,11 +202,6 @@
|
||||||
// Mutex, MutexLock, ThreadLocal, GetThreadCount()
|
// Mutex, MutexLock, ThreadLocal, GetThreadCount()
|
||||||
// - synchronization primitives.
|
// - synchronization primitives.
|
||||||
//
|
//
|
||||||
// Template meta programming:
|
|
||||||
// IteratorTraits - partial implementation of std::iterator_traits, which
|
|
||||||
// is not available in libCstd when compiled with Sun C++.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Regular expressions:
|
// Regular expressions:
|
||||||
// RE - a simple regular expression class using the POSIX
|
// RE - a simple regular expression class using the POSIX
|
||||||
// Extended Regular Expression syntax on UNIX-like platforms
|
// Extended Regular Expression syntax on UNIX-like platforms
|
||||||
|
@ -1901,22 +1896,6 @@ GTEST_API_ size_t GetThreadCount();
|
||||||
template <bool B>
|
template <bool B>
|
||||||
using bool_constant = std::integral_constant<bool, B>;
|
using bool_constant = std::integral_constant<bool, B>;
|
||||||
|
|
||||||
template <typename Iterator>
|
|
||||||
struct IteratorTraits {
|
|
||||||
typedef typename Iterator::value_type value_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
struct IteratorTraits<T*> {
|
|
||||||
typedef T value_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
struct IteratorTraits<const T*> {
|
|
||||||
typedef T value_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
#if GTEST_OS_WINDOWS
|
#if GTEST_OS_WINDOWS
|
||||||
# define GTEST_PATH_SEP_ "\\"
|
# define GTEST_PATH_SEP_ "\\"
|
||||||
# define GTEST_HAS_ALT_PATH_SEP_ 1
|
# define GTEST_HAS_ALT_PATH_SEP_ 1
|
||||||
|
|
|
@ -201,24 +201,6 @@ TEST(ImplicitCastTest, CanUseImplicitConstructor) {
|
||||||
EXPECT_TRUE(converted);
|
EXPECT_TRUE(converted);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(IteratorTraitsTest, WorksForSTLContainerIterators) {
|
|
||||||
StaticAssertTypeEq<int,
|
|
||||||
IteratorTraits< ::std::vector<int>::const_iterator>::value_type>();
|
|
||||||
StaticAssertTypeEq<bool,
|
|
||||||
IteratorTraits< ::std::list<bool>::iterator>::value_type>();
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(IteratorTraitsTest, WorksForPointerToNonConst) {
|
|
||||||
StaticAssertTypeEq<char, IteratorTraits<char*>::value_type>();
|
|
||||||
StaticAssertTypeEq<const void*, IteratorTraits<const void**>::value_type>();
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(IteratorTraitsTest, WorksForPointerToConst) {
|
|
||||||
StaticAssertTypeEq<char, IteratorTraits<const char*>::value_type>();
|
|
||||||
StaticAssertTypeEq<const void*,
|
|
||||||
IteratorTraits<const void* const*>::value_type>();
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(GtestCheckSyntaxTest, BehavesLikeASingleStatement) {
|
TEST(GtestCheckSyntaxTest, BehavesLikeASingleStatement) {
|
||||||
if (AlwaysFalse())
|
if (AlwaysFalse())
|
||||||
GTEST_CHECK_(false) << "This should never be executed; "
|
GTEST_CHECK_(false) << "This should never be executed; "
|
||||||
|
|
Loading…
Reference in New Issue
Block a user