is_const.pass.cpp revision bc8d3f97eb5c958007f2713238472e0c1c8fe02c
1//===----------------------------------------------------------------------===//
2//
3// ��������������������The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// type_traits
11
12// is_const
13
14#include <type_traits>
15
16template <class T>
17void test_is_const()
18{
19    static_assert(!std::is_const<T>::value, "");
20    static_assert( std::is_const<const T>::value, "");
21    static_assert(!std::is_const<volatile T>::value, "");
22    static_assert( std::is_const<const volatile T>::value, "");
23}
24
25int main()
26{
27    test_is_const<void>();
28    test_is_const<int>();
29    test_is_const<double>();
30    test_is_const<int*>();
31    test_is_const<const int*>();
32    test_is_const<char[3]>();
33    test_is_const<char[3]>();
34
35    static_assert(!std::is_const<int&>::value, "");
36    static_assert(!std::is_const<const int&>::value, "");
37}
38