remove_cv.pass.cpp revision bc8d3f97eb5c958007f2713238472e0c1c8fe02c
143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen//===----------------------------------------------------------------------===// 243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// 343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// ��������������������The LLVM Compiler Infrastructure 443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// 543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// This file is distributed under the University of Illinois Open Source 643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// License. See LICENSE.TXT for details. 743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// 843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen//===----------------------------------------------------------------------===// 943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 1043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// type_traits 1143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 1243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// remove_cv 1343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 1443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen#include <type_traits> 1543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 1643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansentemplate <class T, class U> 1743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansenvoid test_remove_cv_imp() 1843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen{ 1943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen static_assert((std::is_same<typename std::remove_cv<T>::type, U>::value), ""); 2043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen} 2143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 2243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansentemplate <class T> 2343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansenvoid test_remove_cv() 2443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen{ 2543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen test_remove_cv_imp<T, T>(); 2643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen test_remove_cv_imp<const T, T>(); 2743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen test_remove_cv_imp<volatile T, T>(); 2843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen test_remove_cv_imp<const volatile T, T>(); 2943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen} 3043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 3143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansenint main() 3243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen{ 3343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen test_remove_cv<void>(); 3443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen test_remove_cv<int>(); 3543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen test_remove_cv<int[3]>(); 3643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen test_remove_cv<int&>(); 3743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen test_remove_cv<const int&>(); 3843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen test_remove_cv<int*>(); 3943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen test_remove_cv<const int*>(); 4043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen} 4143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen