I tråden om {} påpekas att heapen är mycket slöare att allokera på.
Skulle denna kod fungera? Jag knappt testat den alls, men den har ej kraschat.
#include <alloca/alloca.h>
struct _stack_t {} stack;
void* operator new(size_t size, _stack_t)
{
return alloca(size);
}
//i main kan man allokera dynamiskt på stacken så här
char* data = new(stack) char[10000];
Usch ;)
Visst funkar det som du gör i det här fallet, men aj så farligt. Om du istället allokerar ett objekt, hur körs destruktorn? Inte.
När man vill allokera på stacken, är det något man ska vara medveten om, eftersom stacken är begränsad och man måste utnyttja den med omdöme. Syntaxen "CString c("hej");" är utmärkt för det.
Att heapen är långsam att allokera på betyder väl inte att man ska låta bli den, utan snarare använda sitt goda omdöme innan man väljer var man lägger objektet.