Ho la classe:

codice:
/* .hpp */
class MCIDaMS
{
	typedef struct MTIDAITEM 
	{
		...

	} mtidaitem_t;


	typedef std::tr1::unordered_map<const char *, mtidaitem_t> umap_t;
	umap_t data_container;

	void WriteItem(mtidaitem_t &item);
	bool Save(const char *file_path);
};


/* .cpp */
bool MCIDaMS::Save(const char *file_path)
{
	...
		
	std::for_each(data_container.begin(), data_container.end(), 
		[this] (std::pair<const char *, mtidaitem_t> item) { WriteItem(item.second); });

	...
}

che non mi da problemi se la utilizzo in un progetto c++ "standard". tuttavia se importo la classe in un progetto CLR il compilatore inizia a darmi un bel po di errori nell'espressione lambda del metodo MCIDaMS::Save, del tipo:



codice:
2>MIDaMS.cpp(56): error C2059: syntax error : '['
2>MIDaMS.cpp(56): error C2143: syntax error : missing ')' before '{'
2>MIDaMS.cpp(56): error C2143: syntax error : missing ';' before '{'
2>MIDaMS.cpp(56): error C2065: 'item' : undeclared identifier
2>MIDaMS.cpp(56): error C2228: left of '.second' must have class/struct/union
2>          type is ''unknown-type''
2>MIDaMS.cpp(56): error C2059: syntax error : ')'

Qualcuno sa spiegarmi il perchè?
Grazie