1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
// PR c++/50835 struct A {}; struct B { explicit B(A &); operator A&() const; }; void should_be_lvalue(A&); template <typename> void f() { A v; should_be_lvalue(true ? B(v) : v); }