Здравствуйте!
Вот у меня есть допустим какой-то мой map, есть там key_type, mapped_type...
Для обычного map я напишу:
auto a = m["aaa"];
auto& b = m["bbb"];
И всё будет хорошо. Но. Раньше можно было использовать прокси объекты:
class Proxy;
class MyMap
{
//...
Proxy operator[](string key)
//..
};
//..
class Proxy
{
//...
operator mapped_type()
//...
Proxy(const mapped_type&m)
//...
};
И всё работало, потому что не было auto, а надо было явно выписывать тип
А теперь с auto как оно работает?
Если я напишу
auto a = myMap["aaa"];
то я же получу не mapped_type, а Proxy, а со ссылкой вообще висяк получу.
Как это сейчас разруливается?