//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// type_traits
// extent
#include<type_traits>template<classT,unsignedA>voidtest_extent(){static_assert((std::extent<T>::value==A),"");static_assert((std::extent<constT>::value==A),"");static_assert((std::extent<volatileT>::value==A),"");static_assert((std::extent<constvolatileT>::value==A),"");}template<classT,unsignedA>voidtest_extent1(){static_assert((std::extent<T,1>::value==A),"");static_assert((std::extent<constT,1>::value==A),"");static_assert((std::extent<volatileT,1>::value==A),"");static_assert((std::extent<constvolatileT,1>::value==A),"");}classClass{public:~Class();};intmain(){test_extent<void,0>();test_extent<int&,0>();test_extent<Class,0>();test_extent<int*,0>();test_extent<constint*,0>();test_extent<int,0>();test_extent<double,0>();test_extent<bool,0>();test_extent<unsigned,0>();test_extent<int[2],2>();test_extent<int[2][4],2>();test_extent<int[][4],0>();test_extent1<int,0>();test_extent1<int[2],0>();test_extent1<int[2][4],4>();test_extent1<int[][4],4>();}