История изменений
Исправление MirandaUser2, (текущая версия) :
а через индексатор то как-работать?
Потому что при использовании emplace работает и std::map<int,AnyS&>
(как у ТС изначально)
А если мне нужен не emplace, а assign, то и твой вариант с std::map<int,std::reference_wrapper<AnyS>>
не работает.
m[1]=std::ref(as0);
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/include/g++-v10/tuple:1693:70: error: no matching function for call to ‘std::reference_wrapper<AnyS>::reference_wrapper()’
P.S. insert_or_assign - добавлен только в C++17
P.P.S. можно конечно и через find() и at() производить assign, но опять же непонятно в чём тут польза от std::reference_wrapper
Исправление MirandaUser2, :
а через индексатор то как-работать?
Потому что при использовании emplace работает и std::map<int,AnyS&>
(как у ТС изначально)
А если мне нужен не emplace, а assign, то и твой вариант с std::map<int,std::reference_wrapper<AnyS>>
не работает.
m[1]=std::ref(as0);
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/include/g++-v10/tuple:1693:70: error: no matching function for call to ‘std::reference_wrapper<AnyS>::reference_wrapper()’
P.S. insert_or_assign - добавлен только в C++17
Исходная версия MirandaUser2, :
а через индексатор то как-работать?
Потому что при использовании emplace работает и std::map<int,AnyS&>
(как у ТС изначально)
А если мне нужен не emplace, а assign, то и твой вариант с std::map<int,std::reference_wrapper<AnyS>>
не работает.
m[1]=std::ref(as0);
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/include/g++-v10/tuple:1693:70: error: no matching function for call to ‘std::reference_wrapper<AnyS>::reference_wrapper()’