可以通过在定义友元函数时添加friend bool operator<(const MyClass& a, const MyClass& b) __attribute__((always_inline));
的方式来解决此问题。其中,__attribute__((always_inline))
用于告诉编译器一定要内联该函数。以下是示例代码:
#include
using namespace std;
class MyClass {
int a, b;
public:
MyClass(int i, int j) { a = i; b = j; }
friend bool operator<(const MyClass& a, const MyClass& b) __attribute__((always_inline));
};
bool operator<(const MyClass& a, const MyClass& b) {
return (a.a + a.b) < (b.a + b.b);
}
int main() {
MyClass obj1(2, 3), obj2(1, 5);
if (obj1 < obj2) {
cout << "obj1 is less than obj2\n";
}
else {
cout << "obj2 is less than obj1\n";
}
return 0;
}
上一篇:arm64debian清华源