check for property 'mutable iterator' and SFINAE on it

This commit is contained in:
Daniela Engert
2018-10-25 15:22:27 +02:00
committed by Victor Zverovich
parent 2dea780fbd
commit 5ee1a4bc8a
2 changed files with 76 additions and 5 deletions
+18
View File
@@ -197,6 +197,24 @@ TEST(IteratorTest, TruncatingBackInserter) {
EXPECT_EQ(buffer, "42");
}
TEST(IteratorTest, IsOutputIterator) {
EXPECT_TRUE(fmt::internal::is_output_iterator<char*>::value);
EXPECT_FALSE(fmt::internal::is_output_iterator<const char*>::value);
EXPECT_FALSE(fmt::internal::is_output_iterator<std::string>::value);
EXPECT_TRUE(fmt::internal::is_output_iterator<
std::back_insert_iterator<std::string>>::value);
EXPECT_TRUE(fmt::internal::is_output_iterator<
std::string::iterator>::value);
EXPECT_FALSE(fmt::internal::is_output_iterator<
std::string::const_iterator>::value);
EXPECT_FALSE(fmt::internal::is_output_iterator<std::list<char>>::value);
EXPECT_TRUE(fmt::internal::is_output_iterator<
std::list<char>::iterator>::value);
EXPECT_FALSE(fmt::internal::is_output_iterator<
std::list<char>::const_iterator>::value);
EXPECT_FALSE(fmt::internal::is_output_iterator<uint32_pair>::value);
}
TEST(MemoryBufferTest, Ctor) {
basic_memory_buffer<char, 123> buffer;
EXPECT_EQ(static_cast<size_t>(0), buffer.size());