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