Tôi có một chức năng mà đòi hỏi một con trỏ hàm như là đối số:C++ chức năng ràng buộc để sử dụng như là đối số của hàm khác
int func(int a, int (*b)(int, int))
{
return b(a,1);
}
Bây giờ tôi muốn sử dụng một chức năng nhất định mà có ba đối số trong hàm này:
int c(int, int, int)
{
// ...
}
làm thế nào tôi có thể ràng buộc đối số đầu tiên của c
để tôi có thể làm:
int i = func(10, c_bound);
Tôi đã nhìn vào số std::bind1st
nhưng tôi không thể hình dung ra được. Nó không trả về một con trỏ hàm đúng không? Tôi hoàn toàn tự do để thích ứng với func
vì vậy bất kỳ thay đổi nào về cách tiếp cận đều có thể thực hiện được. Althoug Tôi muốn cho người dùng mã của tôi có thể xác định c
...
lưu ý rằng ở trên là sự đơn giản hóa dữ dội của các chức năng thực tế mà tôi đang sử dụng.
Dự án đáng buồn yêu cầu C++98
.
mặc dù Tôi cần C++ 98 mã, câu trả lời này đã dễ dàng chuyển đổi thành tương đương tăng của nó. – romeovs