// RUN: %check_clang_tidy %s google-runtime-operator %t | |
struct Foo { | |
void *operator&(); | |
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: do not overload unary operator&, it is dangerous. [google-runtime-operator] | |
}; | |
template <typename T> | |
struct TFoo { | |
T *operator&(); | |
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: do not overload unary operator& | |
}; | |
TFoo<int> tfoo; | |
struct Bar; | |
void *operator&(Bar &b); | |
// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: do not overload unary operator& | |
// No warnings on binary operators. | |
struct Qux { | |
void *operator&(Qux &q); | |
}; | |
void *operator&(Qux &q, Qux &r); |