Alternatively: use boost::optional<....> to correctly model "we might return modifications" here.