is_volatile.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_volatile 13 14#include <type_traits> 15 16template <class T> 17void test_is_volatile() 18{ 19 static_assert(!std::is_volatile<T>::value, ""); 20 static_assert(!std::is_volatile<const T>::value, ""); 21 static_assert( std::is_volatile<volatile T>::value, ""); 22 static_assert( std::is_volatile<const volatile T>::value, ""); 23} 24 25int main() 26{ 27 test_is_volatile<void>(); 28 test_is_volatile<int>(); 29 test_is_volatile<double>(); 30 test_is_volatile<int*>(); 31 test_is_volatile<const int*>(); 32 test_is_volatile<char[3]>(); 33 test_is_volatile<char[3]>(); 34 35 static_assert(!std::is_volatile<int&>::value, ""); 36 static_assert(!std::is_volatile<volatile int&>::value, ""); 37} 38