cuốn sách gpt4 ai đã làm

c++ - không chuẩn - sử dụng '&' để tạo con trỏ tới thành viên

In lại Tác giả: Walker 123 Thời gian cập nhật: 27-11-2023 23:53:29 27 4
mua khóa gpt4 Nike

Xin hãy tha thứ cho sự thiếu hiểu biết của tôi, tôi mới làm quen với C++.

Thông báo lỗi đầy đủ:

coog.cpp(74): lỗi C3867: 'Manager::start_foo': cú pháp không chuẩn, sử dụng '&' để tạo con trỏ tới thành viên

Tôi đang sử dụng dòng lệnh boost và tôi đang cố chuyển hàm thành viên đối tượng tới trình thông báo. Tôi đã thử nhiều thứ trong các bài đăng khác nhau ở đây và trên Google nhưng không gặp may. Thông báo lỗi nằm ở tiêu đề.

Hy vọng điều này mang lại cho bạn ý tưởng về những gì tôi đang cố gắng thực hiện:

Người quản lý người quản lý;

void coog::handle::start(std::vector& args, Manager& m)
{
po::options_description desc("Bắt đầu các tùy chọn được phép");
desc.add_options()
("foo,f", po::value<>>()
->multitoken()->notifier(m.start_foo), "start foo(s)")
("ví dụ", "hiển thị ví dụ về cách sử dụng từng lệnh")
("trợ giúp", "hiển thị thông báo này")
;

po::variables_map vm;
po::store(po::command_line_parser(args.size(), args.data()).
tùy chọn(desc).run(), vm);
po::notify(vm);

}

coog::handle::start(foos, manager);

Bất kỳ trợ giúp và giải thích sẽ được đánh giá rất cao.

câu trả lời hay nhất

người thông báoMột chức năng có chữ ký này:

typed_value * notifier(function1< void, const T & > f);

Bạn không thể đặt phương thức lớp ở đây vì nó không phù hợp với chữ ký này, bạn có thể sử dụngtăng cường::liên kết , lambda hoặc thứ gì khác, sẽ cho phép bạn xây dựng chức năng1Với chữ ký được chỉ định ở trên từ phương thức lớp của bạn.

Ví dụ ràng buộc :

trình thông báo(boost::bind(&Manager::start_foo, boost::ref(m), _1))

Ví dụ sử dụng lambda:

trình thông báo([&m](const T& v) { return m.start_foo(v); })

nó cũng phụ thuộc bắt đầu_foochữ ký, bạn có thể cần phải liên kết nhiều giá trị hơn.

Về c++ - không chuẩn - sử dụng '&' để tạo con trỏ tới thành viên, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/44432182/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress