Иногда мне приходится писать общие процедуры, которые могут быть применены к контейнеру объектов, или карта таких контейнеров (т.е. обрабатывать каждый контейнер на карте). Один из подходов состоит в том, чтобы написать отдельные подпрограммы для типов карт, но я думаю, что более естественным и менее подробным будет одна подпрограмма, которая работает для обоих типов ввода:
template <typename T>
auto foo(const T& items)
{
return foo(items, /* tag dispatch to map or non-map */);
}
Что такое безопасный, чистый способ отправки этой теги?