diff options
Diffstat (limited to 'test/std/iterators/iterator.primitives/iterator.traits/iterator.pass.cpp')
| -rw-r--r-- | test/std/iterators/iterator.primitives/iterator.traits/iterator.pass.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test/std/iterators/iterator.primitives/iterator.traits/iterator.pass.cpp b/test/std/iterators/iterator.primitives/iterator.traits/iterator.pass.cpp new file mode 100644 index 0000000000000..38f7c0b6b833c --- /dev/null +++ b/test/std/iterators/iterator.primitives/iterator.traits/iterator.pass.cpp @@ -0,0 +1,43 @@ +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// <iterator> + +// template<class Iter> +// struct iterator_traits +// { +// typedef typename Iter::difference_type difference_type; +// typedef typename Iter::value_type value_type; +// typedef typename Iter::pointer pointer; +// typedef typename Iter::reference reference; +// typedef typename Iter::iterator_category iterator_category; +// }; + +#include <iterator> +#include <type_traits> + +struct A {}; + +struct test_iterator +{ + typedef int difference_type; + typedef A value_type; + typedef A* pointer; + typedef A& reference; + typedef std::forward_iterator_tag iterator_category; +}; + +int main() +{ + typedef std::iterator_traits<test_iterator> It; + static_assert((std::is_same<It::difference_type, int>::value), ""); + static_assert((std::is_same<It::value_type, A>::value), ""); + static_assert((std::is_same<It::pointer, A*>::value), ""); + static_assert((std::is_same<It::iterator_category, std::forward_iterator_tag>::value), ""); +} |
