Я пытался использовать шаблоны с автоматическим возвратом и у меня возникли проблемы.Я хочу создать функцию, которая принимает карту STL и возвращает ссылку на индекс в карте.Чего мне не хватает в этом коде, чтобы он правильно компилировался?
(Примечание: я предполагаю, что карту можно инициализировать с целочисленным присваиванием, равным 0. Я, скорее всего, добавлю проверку концепции повышения позже, чтобы убедиться, чтоиспользуется правильно.)
template <typename MapType>
// The next line causes the error: "expected initializer"
auto FindOrInitialize(GroupNumber_t Group, int SymbolRate, int FecRate, MapType Map) -> MapType::mapped_type&
{
CollectionKey Key(Group, SymbolRate, FecRate);
auto It = Map.find(Key);
if(It == Map.end())
Map[Key] = 0;
return Map[Key];
}
Пример кода, который вызывает эту функцию:
auto Entry = FindOrInitialize(Group, SymbolRate, FecRate, StreamBursts);
Entry++;