Define a large bitset in C++
This may not be your problem, but try to allocate the bitset on the heap with new, instead of using the stack.
Some systems limit the size of the stack, which might be what causes problems for you.
I think the following solution is better than using new
std::vector<std::bitset<2500000000UL>> wrapper(1);
auto & cover = wrapper[0];//To avoide unnecessary indirection by wrapper[0]
To demonstrate
int main(){
std::vector<std::bitset<2500000000UL>> wrapper(1);
auto & cover = wrapper[0];
cover[0] = 1;
std::cout << cover[0] << " " << cover[2500000000UL - 1];
}