Поскольку первая перегрузка не является методом const, его нельзя вызывать для временных объектов и объектов const.Если вы предоставляете const-перегрузку, вы по существу поддерживаете const-объекты.
Компилятор будет использовать const-перегрузку для const-объектов и неконстантную перегрузку для неконстантных объектов.
Обычно это ненеобходимо обеспечить перегрузку, если ваша функция является константной, потому что константные функции настолько безопасны, насколько это возможно: они работают как с константными объектами, так и с неконстантными объектами.