Nói rằng tôi muốn có một hàm C++ để thực hiện số học trên hai đầu vào, đối xử với họ như một loại nhất định:Vượt qua con trỏ tới mẫu-chức năng như đối số chức năng?
giả:
function(var X,var Y,function OP)
{
if(something)
return OP<int>(X,Y);
else if(something else)
return OP<double>(X,Y);
else
return OP<string>(X,Y);
}
chức năng phù hợp với OP có thể như:
template <class T> add(var X,var Y)
{
return (T)X + (T)Y; //X, Y are of a type with overloaded operators
}
Vì vậy, câu hỏi là chữ ký cho chức năng trông như thế nào? Nếu các hàm toán tử không được tạo mẫu, tôi có thể làm điều đó, nhưng tôi bị lẫn lộn với sự phức tạp thêm này.
Xem đối số mẫu tiêu bản. (Và đó không phải là lỗi đánh máy.) – sbi
+1, đó là câu trả lời đúng về cách vượt qua OP. – MSalters
Tôi đã thêm câu trả lời này làm câu trả lời. Tôi hy vọng tôi đã không đặt bất kỳ lỗi ngu ngốc vào nó. – sbi