Author: marshall Date: Mon Nov 13 17:18:36 2017 New Revision: 318126 URL: http://llvm.org/viewvc/llvm-project?rev=318126&view=rev Log: Another test for LWG2952
Added: libcxx/trunk/test/std/iterators/iterator.primitives/iterator.traits/const_volatile_pointer.pass.cpp Added: libcxx/trunk/test/std/iterators/iterator.primitives/iterator.traits/const_volatile_pointer.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/iterator.primitives/iterator.traits/const_volatile_pointer.pass.cpp?rev=318126&view=auto ============================================================================== --- libcxx/trunk/test/std/iterators/iterator.primitives/iterator.traits/const_volatile_pointer.pass.cpp (added) +++ libcxx/trunk/test/std/iterators/iterator.primitives/iterator.traits/const_volatile_pointer.pass.cpp Mon Nov 13 17:18:36 2017 @@ -0,0 +1,28 @@ +//===----------------------------------------------------------------------===// +// +// 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 T> +// struct iterator_traits<const T*> + +#include <iterator> +#include <type_traits> + +struct A {}; + +int main() +{ + typedef std::iterator_traits<const volatile A*> It; + static_assert((std::is_same<It::difference_type, std::ptrdiff_t>::value), ""); + static_assert((std::is_same<It::value_type, A>::value), ""); + static_assert((std::is_same<It::pointer, const volatile A*>::value), ""); + static_assert((std::is_same<It::reference, const volatile A&>::value), ""); + static_assert((std::is_same<It::iterator_category, std::random_access_iterator_tag>::value), ""); +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits