https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63728
Bug ID: 63728 Summary: Memory exhaustion using constexpr constructors for classes with large array members Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: gcc-bugzilla at bmevers dot de Having a constexpr constructor on a class with a large array member will result in excessive memory usage. For example, I wasn't able to compile the following program using -std=c++11 on a machine with 4GiB of RAM: #include <bitset> int main() { std::bitset<2147483648> bs; } This happens because the constructor of bitset is constexpr, so it will try to initialize the large member array at compile time, which will create at least one ast tree node for every element in the array. (gcc/cp/constexpr.c:1874)