Здравствуйте, Molchalnik, Вы писали:
I>>Добавь
I>>I>>Any( Any& ) {printf("\ncopy2");}
I>>
M>спасибо. поставил плюсик. а почему не происходит best fit на const Any& ? В каком разделе стандарта можно прочитать?
Это особый вид ссылок, известный под кодовым названием
Forwarding references. Когда ты используешь для конструирования lvalue выражение, параметр с типом "Тn &&" отображается на тип "Any& &&" (да-да, ссылка на ссылку). После этого происходит так называемый коллапсинг избыточных ссылок, по описанному в стандарте правилу, и получается конечный тип формального параметра "Any&". И этот тип лучше подходит для неконстантного объекта, чем "const Any&".