remove_volatile.pass.cpp revision c52f43e72dfcea03037729649da84c23b3beb04a
1ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com//===----------------------------------------------------------------------===// 2ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com// 3ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com// The LLVM Compiler Infrastructure 4ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com// 5ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com// This file is distributed under the University of Illinois Open Source 6ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com// License. See LICENSE.TXT for details. 7ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com// 8ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com//===----------------------------------------------------------------------===// 9ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 10ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com// type_traits 11ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 12c26d94fd7dc0b00cd6d0e42d28285f4a38aff021bsalomon@google.com// remove_volatile 13ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 14ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com#include <type_traits> 155f74cf8c49701f514b69dc6f1a8b5c0ffd78af0asugoi@google.com 16ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.comtemplate <class T, class U> 17ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.comvoid test_remove_volatile_imp() 1849f085dddff10473b6ebf832a974288300224e60bsalomon{ 1949f085dddff10473b6ebf832a974288300224e60bsalomon static_assert((std::is_same<typename std::remove_volatile<T>::type, U>::value), ""); 20c4dc0ad8e252a7e30d19b47d3d0d9f2c69faf854commit-bot@chromium.org} 21c377baf406996aed18d82d328029c82dbc3b8ddatomhudson@google.com 22ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.comtemplate <class T> 23ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.comvoid test_remove_volatile() 24ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com{ 25ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com test_remove_volatile_imp<T, T>(); 26ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com test_remove_volatile_imp<const T, const T>(); 27ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com test_remove_volatile_imp<volatile T, T>(); 28c4dc0ad8e252a7e30d19b47d3d0d9f2c69faf854commit-bot@chromium.org test_remove_volatile_imp<const volatile T, const T>(); 29ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com} 30ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com 31ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.comint main() 32ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com{ 33ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com test_remove_volatile<void>(); 34ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com test_remove_volatile<int>(); 35ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com test_remove_volatile<int[3]>(); 36ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com test_remove_volatile<int&>(); 37e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com test_remove_volatile<const int&>(); 38e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com test_remove_volatile<int*>(); 39ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com test_remove_volatile<volatile int*>(); 40ded4f4b163f5aa19c22c871178c55ecb34623846bsalomon@google.com} 4132184d81629e39809bb9e915286d8fe971a8ed68commit-bot@chromium.org