And*_*s T 12 c++ g++ std freeze c++11
我写了一个非常小的程序:
#include <array>
#include <tuple>
#include <iostream>
const unsigned int NUM = 500;
void simple()
{
using namespace std;
array<tuple<float, float, float>, NUM> vectors;
}
int main(int argc, char **argv)
{
std::cout << "Hello, world!" << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我编译了它g++ -std=c++0x.
这个版本工作正常,但如果我增加到NUM50,000,000,g ++使用90%的CPU,我的系统完全冻结.
我知道如果没有足够的堆栈内存,程序可能会在执行期间崩溃.但是为什么编译器会在编译期间冻结?
这是g ++中的错误还是由于某种原因编译器需要在编译期间分配堆栈内存?