//===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // type_traits // alignment_of #include #include #include "test_macros.h" template void test_alignment_of() { const unsigned AlignofResult = TEST_ALIGNOF(T); static_assert( AlignofResult == A, "Golden value does not match result of alignof keyword"); static_assert( std::alignment_of::value == AlignofResult, ""); static_assert( std::alignment_of::value == A, ""); static_assert( std::alignment_of::value == A, ""); static_assert( std::alignment_of::value == A, ""); static_assert( std::alignment_of::value == A, ""); #if TEST_STD_VER > 14 static_assert( std::alignment_of_v == A, ""); static_assert( std::alignment_of_v == A, ""); static_assert( std::alignment_of_v == A, ""); static_assert( std::alignment_of_v == A, ""); #endif } class Class { public: ~Class(); }; int main(int, char**) { test_alignment_of(); test_alignment_of(); test_alignment_of(); test_alignment_of(); test_alignment_of(); test_alignment_of(); test_alignment_of(); test_alignment_of(); test_alignment_of(); return 0; }