&演算子をオーバーロードすればそういう書き方も通るんでない?

class A{
public:
  A(){}
  int operator&(){return 123;}
};
int main()
{
  printf("%d\n", &A());
}