Здравствуйте, Кодт, Вы писали:
К>Но различать i и ri таким способом ты всё равно не сможешь 
Авв. Действительно. Если перегрузить и для значения, и для ссылки, идет неоднозначность вызова
К>Лучше расскажи, что за задачу ты решаешь.
Есть тип Variant. Может хранить объект любого типа, хоть ссылку, хоть указатель, хоть сам объект. Хотелось бы такого:
int x;
int& rx = x;
Variant v;
v.set(x); // v хранит сам объект
v.set(rx); // v должен хранить ссылку на объект (внутри реализовано через указатель, но это детали), но он не отличает это от верхней строчки
Если я пишу явно
v.set<int&>(rx);
то все работает как надо.
Я не уверен, что мне обязательно нужно без явного указания. Но хочется все-таки такую возможность иметь.