diff options
| -rw-r--r-- | libcxx/test/iterators/iterator.primitives/iterator.traits/empty.pass.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libcxx/test/iterators/iterator.primitives/iterator.traits/empty.pass.cpp b/libcxx/test/iterators/iterator.primitives/iterator.traits/empty.pass.cpp index 0da7f84c143..e48e44b3777 100644 --- a/libcxx/test/iterators/iterator.primitives/iterator.traits/empty.pass.cpp +++ b/libcxx/test/iterators/iterator.primitives/iterator.traits/empty.pass.cpp @@ -20,7 +20,19 @@ struct not_an_iterator { }; +template <class _Tp> +struct has_value_type +{ +private: + struct two {char lx; char lxx;}; + template <class _Up> static two test(...); + template <class _Up> static char test(typename _Up::value_type* = 0); +public: + static const bool value = sizeof(test<_Tp>(0)) == 1; +}; + int main() { typedef std::iterator_traits<not_an_iterator> It; + static_assert(!(has_value_type<It>::value), ""); } |

