我有一个C结构(在C头文件中),如下所示:
struct Foo {
int a;
int b;
int c;
};
typedef struct Foo Foo;
Run Code Online (Sandbox Code Playgroud)
我想测试这些结构的两个向量的相等性,因此我想为我的翻译单元为此结构定义一个自定义的相等运算符。
我能够做到
static inline bool operator==(const Foo&, const Foo&) {...}
Run Code Online (Sandbox Code Playgroud)
但不是
namespace {
bool operator==(const Foo&, const Foo&) {...}
}
Run Code Online (Sandbox Code Playgroud)
为什么std :: vector的相等模板找不到该运算符,并且有比在全局名称空间中插入静态内联更好的方法吗?