I'm with example from 3.4.1 Unqualified name lookup, using VS2012-update2.

typedef int f; 
namespace N 
{ 
  struct A 
  {
    friend void f( A & );
    operator int();
    void g( A a ) { int i = f( a ); } 
    // f is the typedef, not the friend function: equivalent to int(a)
  };
}

Compiler complains that [friend] function f() returns a void that cannot be assigned to int.  Thoughts?

Thank you Mr. STL!