__THROW_BAD_ALLOC
# define __THROW_BAD_ALLOC throw bad_alloc()
# define __THROW_BAD_ALLOC fprintf(stderr, "out of memory\n"); exit(1)
# define __THROW_BAD_ALLOC cerr << "out of memory" << endl; exit(1)