home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / lang / cplus / 11363 < prev    next >
Encoding:
Text File  |  1992-07-22  |  1.3 KB  |  65 lines

  1. Path: sparky!uunet!mcsun!fuug!demos!kiae!glas!demos!microsoft.com!jimad
  2. From: jimad@microsoft.com
  3. Newsgroups: comp.lang.c++
  4. Date: 18 Jul 92 00:41 MDT
  5. Subject: Re: boolean (was: Re: typedef vs enum)
  6. Sender: Notesfile to Usenet Gateway <notes@glas.apc.org>
  7. Message-ID: <1992Jul17.204136.17450@microsoft>
  8. References: <1992Jul11.195547.18323@cmcl2.nyu>
  9. Nf-ID: #R:1992Jul11.195547.18323@cmcl2.nyu:1382747533:1992Jul17.204136.17450@microsoft:864179071:001:825
  10. Nf-From: microsoft.com!jimad    Jul 18 00:41:00 1992
  11. Lines: 52
  12.  
  13.  
  14. In article <1992Jul16.222530.4197@sunb10.cs.uiuc.edu> pjl@sparc9.cs.uiuc.edu (Paul Lucas) writes:
  15. >    I use:
  16. >
  17. >        enum { false, true };        // intentionally unnamed
  18. >        typedef unsigned char Boolean;
  19. ....
  20. >    (I don't think it's possible _to_ use it improperly).
  21.  
  22. Excuuse Me?
  23.  
  24. ======
  25.  
  26.  
  27.  
  28. #include "iostream.h"
  29.  
  30. enum { false, true };
  31.  
  32. typedef unsigned char Boolean;
  33.  
  34. Boolean BoolInvertFunc(Boolean b)
  35. {
  36.     return !b;
  37. }
  38.  
  39. void SomeFunc(int i) { cout << "SomeFunc(int) invoked\n";}
  40. void SomeFunc(Boolean b) { cout << "SomeFunc(Boolean) invoked\n";}
  41.  
  42. main()
  43. {
  44.     Boolean b = true;
  45.     unsigned char c = 'c';
  46.  
  47.     cout << c << '\n';
  48.     cout << b << '\n';    // UNDIAGNOSED ERROR
  49.  
  50.     cout << ( c == BoolInvertFunc(BoolInvertFunc(c)) ); // UNDIAGNOSED ERROR
  51.     cout << '\n';
  52.  
  53.     SomeFunc(b == true);    // WRONG FUNCTION INVOKED
  54.  
  55.   // etc etc etc
  56.  
  57.     return 0;
  58. }
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.