2015-10-28 9 views
5

Per un software, è necessario evitare l'utilizzo della memoria nell'heap e fare affidamento solo sulla memoria allocata nello stack. Quindi, questo mi impedisce di usare qualsiasi contenitore standard C++, come vector, map, string (beh, basic_string), che mi piacerebbe davvero usare, per facilitare lo sviluppo e la manipolazione dei dati.Allocatore stack per contenitori standard C++ 03

Ho trovato (molte) implementazioni di allocatori di stack, come ad esempio this one che a sua volta fa riferimento ad altre due o this one da cromo.

Molti di questi non sono completamente conformi allo standard, o si basano su C++ 11 (e sono attualmente bloccato con C++ 03, purtroppo). Hai qualche feedback su un buon stack allocator già esistente per C++ 03 o dovrei adattare uno dei precedenti?

Grazie!

+4

Howard Hinnant fornisce un [C++ 03 bolierplate per il suo allocatore] (http://howardhinnant.github.io/allocator_boilerplate.html) vedi anche [Domande sullo stack stacker di Hinnant] (http://stackoverflow.com/ q/11648202/1708801) –

risposta

3

Howard Hinnant's short_alloc.h (see also here) è un buon inizio (è necessario aggiungere il codice di caldaia C++ 03, vedere here).

Ovviamente, questo andrà ancora nell'heap se esaurisce la memoria, l'alternativa è lanciare std::bad_alloc.