Trên trang tài liệu bạn liên kết đến, bạn sẽ thấy nhận xét này:
// specialization for function types that have ref-qualifiers
trên danh sách các ví dụ bạn tham khảo đến từ.
Đó là các chức năng có bộ kiểm tra lại, bạn có thể đọc thêm về here.
Tóm lại, chúng tương tự như const
chức năng đủ điều kiện. Dưới đây là ví dụ:
struct foo
{
void bar() & { std::cout << "this is an lvalue instance of foo" << "\n"; }
void bar() && { std::cout << "this is an rvalue instance of foo" << "\n"; }
};
int main(int argc, char* argv[])
{
foo f{};
f.bar(); // prints "this is an lvalue instance of foo"
std::move(f).bar(); // prints "this is an rvalue instance of foo"
return 0;
}
Tôi không thể nghĩ về trường hợp sử dụng tuyệt vời cho tính năng này nhưng có thể sử dụng.
Tôi muốn liên kết đến tóm tắt tốt đẹp trong [P0172R0] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0172r0.html). –
@ T.C. Cảm ơn, đã thêm một đề cập. – hvd
Tôi tin rằng bạn cũng có thể sử dụng A = int (int) &; struct Bob {A foo; }; '. – Yakk