#include #include struct Foo { uint32_t func() const & { return 0; } int64_t func() const && { return 1; } uint32_t func() & { return 2; } int64_t func() && { return 3; } }; int main() { Foo foo; const Foo const_foo; auto res = foo.func() + const_foo.func() + Foo{}.func() + static_cast(Foo{}).func(); std::puts("Break here"); return res; }