icu::MeasureUnit has getters for the units that return by pointer, and the pointer requires ownership. However, icu::MeasureUnit is a very cheap value object that retains no memory. It would therefore make sense to give the ability to get objects by value rather than by pointer.