Các mã sau đây:Tại sao bạn không thể lấy con trỏ tới thành viên từ tên hàm thành viên không đủ tiêu chuẩn trong C++ 11?
struct X
{
void f() {}
void g()
{
auto h = &f;
}
};
kết quả trong:
error: ISO C++ forbids taking the address of an unqualified
or parenthesized non-static member function to form a pointer
to member function. Say ‘&X::f’
Câu hỏi của tôi là, tại sao được này không được phép và bị cấm theo tiêu chuẩn? Nó sẽ thuận tiện hơn khi người dùng tham chiếu đến nó không đủ tiêu chuẩn, vì vậy tôi cho rằng có một số lý do khác (an toàn? Một sự mơ hồ? Dễ thực hiện trình biên dịch?) Cho yêu cầu?
câu trả lời trước này dường như để giải quyết các câu hỏi: http://stackoverflow.com/a/7138582 –