Tampaknya program Anda memerlukan jumlah memori yang tidak masuk akal (mungkin karena terlalu banyak ekspansi template).
Menggunakan g++-trunk
terbaru :
gcc version 4.8.0 20121026 (experimental) [trunk revision 192860] (GCC)
dengan batas zsh berikut:
% 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
(ini pada Debian/Sid/AMD64 dengan prosesor intel i3770K &RAM 16Gb)
Saya mendapatkan:
% 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
Jadi tampaknya ekspansi template memerlukan begitu banyak memori sehingga program Anda tidak masuk akal.
Saya tidak yakin apakah ini akan diterima sebagai bug GCC. Ekspansi makro untuk template C++ dikenal sebagai Turing selesai dan Anda baru saja menabrak dinding. Dan batang GCC memang melaporkan kesalahan yang fatal, namun dapat dimengerti.
Moral dari cerita ini mungkin untuk setrlimit(2) dengan tepat (dengan batasan yang kompatibel dengan sistem dan perangkat keras Anda), mungkin menggunakan limit
zsh bawaan atau ulimit
bash bawaan.