Вы не получаете очень хорошее сообщение об ошибке. Но проблема в том, что шаблонный класс STL map <> подходит только для неуправляемых типов. Требуется, чтобы у типа элемента был деструктор, у управляемых типов его нет. В языке C ++ / CLI деструкторы моделируются с помощью интерфейса IDisposable, который является источником сбивающего с толку сообщения об ошибке.
Если вы действительно хотите использовать STL, вы можете реализовать STL / CLR , доступную в VS2008. Однако это довольно широко игнорируется, поскольку в основном объединяет недостатки STL (семантика дорогостоящих значений) с недостатками управляемого кода (нет семантики значений по умолчанию для ссылочных типов). Эта веб-страница сравнивает ее с собственными классами коллекций .NET, мягко говоря, с впечатляющими результатами.
Подходящий класс коллекции для использования здесь: System :: Collections :: Generic :: Dictionary <>