1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include <cstdint> #include <cstdio> 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 const &&>(Foo{}).func(); std::puts("Break here"); return res; }