// PR c++/47851 // { dg-do compile { target c++11 } } struct Type { void display_type(); void display_type() const { } }; typedef Type const ConstType; struct ConvertibleToType { operator Type&() { return *reinterpret_cast(this); } }; int main () { // Both lines should call the const variant. (true ? ConvertibleToType() : ConstType()).display_type(); decltype((true ? ConvertibleToType() : ConstType()))().display_type(); }