111
|
1 // PR c++/67084
|
131
|
2 // { dg-do compile { target c++17 } }
|
|
3 // { dg-options "-fconcepts" }
|
111
|
4
|
|
5 template <class T>
|
|
6 constexpr bool p = false;
|
|
7
|
|
8 template <class T>
|
|
9 constexpr bool p<T*> = false;
|
|
10
|
|
11 template <class T>
|
|
12 requires true
|
|
13 constexpr bool p<T*> = false;
|
|
14
|
|
15 template <class T>
|
|
16 requires true && T() == 0
|
|
17 constexpr bool p<T*> = true;
|
|
18
|
|
19 template <class T>
|
|
20 constexpr bool q = false;
|
|
21
|
|
22 template <class T>
|
|
23 constexpr bool q<T*> = true;
|
|
24
|
|
25 template <class T>
|
|
26 requires false
|
|
27 constexpr bool q<T*> = false;
|
|
28
|
|
29 template <class T>
|
|
30 requires false && T() != 0
|
|
31 constexpr bool q<T*> = false;
|
|
32
|
|
33 static_assert (p<int*>,"");
|