Это не выбирает неправильную перегрузку; const
-ness определяется тем, является ли this
1003 * или нет. В вашем случае, o
не является const
, поэтому перегрузка не const
выбрана.
Вы можете взломать это, создав const-ссылку на o
, например ::
const Other &o2 = o;
s = o2.some_function();
Но на самом деле, вы, вероятно, должны учитывать ваши перегрузки в Something
. Например, в настоящее время вы не можете сделать это:
IntSomething x;
ConstIntSomething y;
y = x;
что не звучит правильно. Почему бы вам не разрешить принимать константные ссылки на неконстантные ссылки?