purtroppo postare codice compilabile è impossibile, il mio programmino si rifa ad una libreria dove sono contenuti quei metodi che ho postato, e la libreria è costituita da più di 200 file.

comunque mentre vaneggiavo una santa persona mi è venuta in soccorso e dopo due ore di smattimento ci siamo accorti che stavo utilizzando all'interno del costruttore di un oggetto statico, membro di un'altra classe (ps_power_module), un altro oggetto statico (la mappa in cui falliva l'insert) di questa medesima classe (ps_power_module). Essendo random l'inizializzazione dei membri statici la mappa veniva utilizzata senza essere stata prima inizializzata!!!!!!
Ho risolto inserendo all'interno della classe ps_power_module questo:
codice:
std::map<string,ps_power_module_struct> & get_table(){
static std::map<string, ps_power_module_struct> table;
return table;
così quando mi serve la mappa, anche se non è stata inizializzata, chiamando questa funzione essa rimane statica e se è la prima volta viene inizializzata.

un trucchetto forse non bello a vedersi, che assomiglia molto al Singleton Pattern che si utilizza in JAVA, ma che mi ha salvato molte notti insonni!!!!!!
spero che il mio smattimento eviti notti insonni a qualcun'altro!!!!!!


grazie ancora a tutti per l'interesse...


Marco