home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 mARCH / PCWK3A99.iso / Linux / DDD331 / DDD-3_1_.000 / DDD-3_1_ / ddd-3.1.1 / ddd / assert.h < prev    next >
C/C++ Source or Header  |  1998-10-29  |  2KB  |  63 lines

  1. // $Id: assert.h,v 1.8 1998/10/29 11:00:28 zeller Exp $
  2. // own assert() macros
  3. // built on libg++-assert.h and making sure top-level abort() is called
  4.  
  5. // Copyright (C) 1995-1998 Technische Universitaet Braunschweig, Germany.
  6. // Written by Andreas Zeller <zeller@ips.cs.tu-bs.de>.
  7. // 
  8. // This file is part of the ICE Library.
  9. // 
  10. // The ICE Library is free software; you can redistribute it and/or
  11. // modify it under the terms of the GNU Library General Public
  12. // License as published by the Free Software Foundation; either
  13. // version 2 of the License, or (at your option) any later version.
  14. // 
  15. // The ICE Library is distributed in the hope that it will be useful,
  16. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  18. // See the GNU Library General Public License for more details.
  19. // 
  20. // You should have received a copy of the GNU Library General Public
  21. // License along with the ICE Library -- see the file COPYING.LIB.
  22. // If not, write to the Free Software Foundation, Inc.,
  23. // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  24. // 
  25. // ICE is the incremental configuration environment.
  26. // For details, see the ICE World-Wide-Web page, 
  27. // `http://www.cs.tu-bs.de/softech/ice/',
  28. // or send a mail to the ICE developers <ice@ips.cs.tu-bs.de>.
  29.  
  30. // Allow this file to be included multiple times with different
  31. // settings of NDEBUG.
  32.  
  33. #if NDEBUG
  34. #undef assert
  35. #undef _assert_fn
  36. #define assert(ignore)
  37.  
  38. #else  // !NDEBUG
  39.  
  40. #if HAVE_CONFIG_H
  41. #include "config.h"        // HAVE_PRETTY_FUNCTION
  42. #endif
  43.  
  44. #include <stdlib.h>        // abort()
  45. #include <iostream.h>
  46.  
  47. #undef assert
  48. #undef _assert_fn
  49.  
  50. #if HAVE_PRETTY_FUNCTION
  51. #define _assert_fn \
  52. "\n" << __FILE__ << ": In function `" << __PRETTY_FUNCTION__ << "':"
  53. #else // !HAVE_PRETTY_FUNCTION
  54. #define _assert_fn ""
  55. #endif // !HAVE_PRETTY_FUNCTION
  56.  
  57. #define assert(ex) \
  58. ((ex) ? 1 : (cerr << _assert_fn << "\n" << __FILE__ << ":" << __LINE__ \
  59.               << ": assertion `" #ex "' failed\n", \
  60.               ::abort(), 0))
  61.  
  62. #endif // !NDEBUG
  63.