I tend to use the .mm extension by default when creating new classes so that I can use ObjC++ later on if I require it.
Is there any disadvantage to doing this? When would you prefer .m? Does .m compile to a faster executable (since C is generally faster than C++)?