Parece que su programa requiere una cantidad excesiva de memoria (quizás debido a demasiadas expansiones de plantillas).
Usando un g++-trunk
reciente :
gcc version 4.8.0 20121026 (experimental) [trunk revision 192860] (GCC)
con los siguientes límites zsh:
% limit
cputime unlimited
filesize unlimited
datasize 15000MB
stacksize 8MB
coredumpsize 400MB
memoryuse 15000MB
maxproc 128166
descriptors 1024
memorylocked 64kB
addressspace 16000MB
maxfilelocks unlimited
sigpending 128166
msgqueue 819200
nice 0
rt_priority 0
rt_time unlimited
(esto en Debian/Sid/AMD64 con procesador Intel i3770K y 16 Gb de RAM)
Estoy recibiendo:
% time g++-trunk -std=gnu++11 andrew.cc -o andrew
virtual memory exhausted: Cannot allocate memory
g++-trunk -std=gnu++11 andrew.cc -o andrew :
108.25s user 3.28s system 89% cpu 2:03.98 total
Entonces parece que la expansión de la plantilla requiere tanta memoria que su programa no es razonable.
No estoy seguro de si esto se aceptará como un error de GCC. Se sabe que la expansión de macros para las plantillas de C ++ está completa y simplemente golpea la pared. Y el tronco de GCC informa un error fatal, pero comprensible.
La moraleja de la historia podría ser setrlimit(2) apropiadamente (con límites compatibles con su sistema y hardware), tal vez usando limit
zsh incorporado o ulimit
bash integrado.