I agree about using overloads. However, this patch I don't quite understand. I think it makes more sense to add the overloads as part of the switch to std::unique_ptr so that there is less weirdness? Or maybe the diff is just messed up? http://llvm-reviews.chandlerc.com/D2962