// DR 342, PR c++/48582 | |
// { dg-do compile { target c++11 } } | |
struct A; | |
template < void * = nullptr > void f() { } | |
template < void (A::*)() = nullptr > void g() { } | |
template < int A::* = nullptr > void h() { } | |
int main() | |
{ | |
// { dg-final { scan-assembler "_Z1fILPv0EEvv" } } | |
f(); | |
f<nullptr>(); | |
// { dg-final { scan-assembler "_Z1gILM1AFvvE0EEvv" } } | |
g(); | |
g<nullptr>(); | |
// { dg-final { scan-assembler "_Z1fILPv0EEvv" } } | |
h(); | |
h<nullptr>(); | |
constexpr void * ptr = nullptr; | |
f<ptr>(); | |
} |