Is this really how we want this signature to work?

I envision the following case.

CompMap a;
CompMapPtr b(new CompMap());

a == b; // weird
*b == CompMapPtr(a); // clunky