// PR c++/67813 | |
// { dg-do compile { target c++14 } } | |
struct Ptr { | |
int* p; | |
constexpr Ptr(int* p) noexcept : p{p} {} | |
constexpr int& operator*() const { | |
return *p; | |
} | |
}; | |
constexpr int f(int& i) { | |
//Ptr first{&i}; // Works. | |
Ptr first = &i; // Error | |
return *first; | |
} | |
constexpr int g() { | |
int i = 42; | |
return f(i); | |
} | |
#define SA(X) static_assert((X), #X) | |
SA(g() == 42); |