O'Reilly logo
  • Ben Medina thinks this is interesting:

The tr1::shared_ptr constructor insists on its first parameter being a pointer, and 0 isn't a pointer, it's an int. Yes, it's convertible to a pointer, but that's not good enough in this case;

From

Cover of Effective C++: 55 Specific Ways to Improve Your Programs and Designs, Third Edition

Note

nullptr from C++11 solves this problem.