annotate gcc/testsuite/g++.dg/cpp0x/auto4.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // Testcase for deduction of std::initializer_list for auto.
kono
parents:
diff changeset
2 // { dg-do run { target c++11 } }
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 #include <typeinfo>
kono
parents:
diff changeset
5 #include <initializer_list>
kono
parents:
diff changeset
6 extern "C" void abort();
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 template <class T>
kono
parents:
diff changeset
9 void f (T t)
kono
parents:
diff changeset
10 {
kono
parents:
diff changeset
11 auto ilt = { &t, &t };
kono
parents:
diff changeset
12 if (typeid(ilt) != typeid(std::initializer_list<T*>))
kono
parents:
diff changeset
13 abort();
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 auto il = { 1, 2, 3 };
kono
parents:
diff changeset
16 if (typeid(il) != typeid(std::initializer_list<int>))
kono
parents:
diff changeset
17 abort();
kono
parents:
diff changeset
18 }
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 int main()
kono
parents:
diff changeset
21 {
kono
parents:
diff changeset
22 auto il = { 1, 2, 3 };
kono
parents:
diff changeset
23 if (typeid(il) != typeid(std::initializer_list<int>))
kono
parents:
diff changeset
24 abort();
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 f('c');
kono
parents:
diff changeset
27 }