Trong C++, bạn có thể có toán tử được sắp xếp trên lớp không? Cũng giống như vậy:Mẫu chức năng với toán tử
class MyClass {
public:
template<class T>
T operator()() { /* return some T */ };
}
Điều này thực sự dường như biên dịch tốt, nhưng sự nhầm lẫn do thỏa thuận như thế nào người ta sẽ sử dụng nó:
MyClass c;
int i = c<int>(); // This doesn't work
int i = (int)c(); // Neither does this*
Thực tế là nó biên dịch ở tất cả các gợi ý với tôi rằng đó là doable, Tôi chỉ thua lỗ về cách sử dụng nó! Bất kỳ đề xuất, hoặc là phương pháp này sử dụng một không khởi động?
Điều này có nghĩa là "điều này không hoạt động/không thực hiện điều này"? Chuyện gì xảy ra? –
Trình biên dịch barfs về bạn, đó là những gì sẽ xảy ra :) – Toji
Tôi thề tôi đã nhìn thấy câu hỏi này trên SO trước ... Tôi không thể tìm thấy nó mặc dù, vì vậy rõ ràng là không thể đổ lỗi cho bạn. – GManNickG