15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===// 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The LLVM Compiler Infrastructure 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Source Licenses. See LICENSE.TXT for details. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===// 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// type_traits 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// is_const 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <type_traits> 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <class T> 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void test_is_const() 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static_assert(!std::is_const<T>::value, ""); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static_assert( std::is_const<const T>::value, ""); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static_assert(!std::is_const<volatile T>::value, ""); 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static_assert( std::is_const<const volatile T>::value, ""); 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int main() 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test_is_const<void>(); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test_is_const<int>(); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test_is_const<double>(); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test_is_const<int*>(); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test_is_const<const int*>(); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test_is_const<char[3]>(); 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test_is_const<char[3]>(); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static_assert(!std::is_const<int&>::value, ""); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static_assert(!std::is_const<const int&>::value, ""); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)