Hãy asssume rằng chúng ta có một mẫu funcion:Có thể chuyển mẫu chức năng dưới dạng đối số mẫu không?
template<typename T1, typename T2, typename T3>
T3 such_fun(T1 a, T2 b) {
// do something...
}
và bây giờ chúng tôi muốn sử dụng nó như một cuộc tranh cãi trong mẫu khác, ví dụ như thế
template<typename T1, template<typename, typename, typename> some_function>
void big_fun(T1 a) {
// some code...
a = some_function<T1, T1, T1>(a, a);
// some code...
}
Có thể không?
Tôi biết rằng tôi có thể sử dụng cấu trúc với toán tử được định nghĩa(). Tôi chỉ tò mò về các chức năng.
EDIT:
Trong khi tôi đang viết rằng câu hỏi của bạn tôi tìm thấy một giải pháp phần:
template<typename T1, T1 (*some_function)(T1, T1)>
void big_fun(T1 a) {
// some code...
a = some_function(a, a);
// some code...
}
Nhưng vẫn - Tôi tò mò nếu nó có thể không có thể hóa của một loại chức năng trước gọi điện. Ví dụ - tôi có thể muốn gọi mẫu được truyền với các loại kết hợp khác nhau:
template<typename T1, typename T2, template<typename, typename, typename> some_function>
void big_fun(T1 a, T2 b) {
// some code...
a = some_function<T1, T1, T1>(a, a);
a = some_function<T1, T2, T1>(a, b);
b = some_function<T2, T2, T2>(b, b);
b = some_function<T2, T1, T2>(b, a);
// some code...
}
Tôi không hiểu lời bạn đang nói .. -1, bạn có thể cung cấp thông tin cho chúng tôi không thông thạo trong chế độ standarese không? – lurscher
@lurscher vì _you_ không hiểu đó là lý do khủng khiếp để giảm giá. Tôi không downvote các nhà vật lý lượng tử khi họ nói về vật lý lượng tử bởi vì tôi không hiểu nó. –
@SethCarnegie, tôi không đồng ý. Tôi nghĩ đó là một lý do rất tốt. bên cạnh đó, câu trả lời cũng sai; những gì câu hỏi muốn làm là hoàn toàn có thể, ngay cả trong C++ 03.Tôi nghĩ rằng có một ngắt kết nối giữa những gì SO hỏi và những gì pmr câu trả lời, do đó các downvote. Nếu anh ấy cải thiện câu trả lời của mình, tôi sẽ rất vui khi rút nó – lurscher