I am not sure, I think it's better to stick to explicit types unless auto really makes sense, e.g. the return type of a function might be changed later with something compatible or when the type is already easily readable from the right side of the assignment. In other cases, I think it decreases readability.