integer_seq.fail.cpp revision 7ec46bc4228ae1c23a34220d8c6885356d18918c
1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <utility>
11
12// template<class T, T... I>
13// struct integer_sequence
14// {
15//     typedef T type;
16//
17//     static constexpr size_t size() noexcept;
18// };
19
20// This test is a conforming extension.  The extension turns undefined behavior
21//  into a compile-time error.
22
23#include <utility>
24
25int main()
26{
27#if _LIBCPP_STD_VER > 11
28
29//  Should fail to compile, since float is not an integral type
30    using floatmix = std::integer_sequence<float>;
31    floatmix::value_type I;
32
33#else
34
35X
36
37#endif  // _LIBCPP_STD_VER > 11
38}
39