In this isolated example they are functionally the same, at least from the outside.
However there are differences.  One instance in particular, you cannot declare a constructor for a struct or a class declared in this way, simply because the class is unnamed.  Similarly you cannot declare any function that involves the class' name.  Here are some examples:
typedef class
{
public:
  Gizmo() : n_(42) {}; // NOT OK
  ~Gizmo();
  Gizmo& operator<<(int n);    
private:
  int n_;
} Gizmo;
You also cannot forward declare an anonymous class:
class Gizmo;
In C++ I have never seen a case where typedefing an anonymous struct or a class is preferable to simply declaring a class or a struct that is named.  In some cases the traditional method is definitely preferred.  The moral of the story is:  don't use typedef class {} Name; in C++.  It buys you nothing, and costs you something.