1 // RUN: %check_clang_tidy %s google-runtime-operator %t 2 3 struct Foo { 4 void *operator&(); 5 // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: do not overload unary operator&, it is dangerous. [google-runtime-operator] 6 }; 7 8 template <typename T> 9 struct TFoo { 10 T *operator&(); 11 // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: do not overload unary operator& 12 }; 13 14 TFoo<int> tfoo; 15 16 struct Bar; 17 void *operator&(Bar &b); 18 // CHECK-MESSAGES: :[[@LINE-1]]:1: warning: do not overload unary operator& 19 20 // No warnings on binary operators. 21 struct Qux { 22 void *operator&(Qux &q); 23 }; 24 25 void *operator&(Qux &q, Qux &r); 26