Sha256: 50e053d920e906d1af9ce3bb2a7bc70ce7b6d6852f4679e088590d80b33e7efa
Contents?: true
Size: 1.04 KB
Versions: 135
Compression:
Stored size: 1.04 KB
Contents
//#include <list> #include <stdexcept> #include <stdio.h> using namespace std; struct BigStruct { char _data[4096]; }; void bad_alloc_test() { typedef allocator<BigStruct> BigStructAllocType; BigStructAllocType bigStructAlloc; try { //Lets try to allocate almost 4096 Go (on most of the platforms) of memory: BigStructAllocType::pointer pbigStruct = bigStructAlloc.allocate(1024 * 1024 * 1024); // CPPUNIT_ASSERT( pbigStruct != 0 && "Allocation failed but no exception thrown" ); } catch (bad_alloc const&) { printf( "Ok\n" ); } catch (...) { //We shouldn't be there: // CPPUNIT_ASSERT( false && "Not bad_alloc exception thrown." ); } } void bad_alloc_test1() { try { allocator<BigStruct> all; BigStruct *bs = all.allocate(1024*1024*1024); // throw bad_alloc(); } catch ( bad_alloc const & ) { printf( "I am here\n" ); } catch ( ... ) { } } int main() { bad_alloc_test(); #if 0 try { throw bad_alloc(); } catch ( bad_alloc& ) { } catch ( ... ) { } #endif return 0; }
Version data entries
135 entries across 135 versions & 2 rubygems