Author: marshall
Date: Mon Dec 15 18:30:07 2014
New Revision: 224295
URL: http://llvm.org/viewvc/llvm-project?rev=224295&view=rev
Log:
Add test to ensure that iterator_traits<NotAnIterator> doesn't have a value type
Modified:
libcxx/trunk/test/iterators/iterator.primitives/iterator.traits/empty.pass.cpp
Modified:
libcxx/trunk/test/iterators/iterator.primitives/iterator.traits/empty.pass.cpp
URL:
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/iterators/iterator.primitives/iterator.traits/empty.pass.cpp?rev=224295&r1=224294&r2=224295&view=diff
==============================================================================
---
libcxx/trunk/test/iterators/iterator.primitives/iterator.traits/empty.pass.cpp
(original)
+++
libcxx/trunk/test/iterators/iterator.primitives/iterator.traits/empty.pass.cpp
Mon Dec 15 18:30:07 2014
@@ -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), "");
}
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits