home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Programmierung / SOURCE.mdf / programm / msdos / pascal / rehack / general / flags.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  1993-07-15  |  987 b   |  51 lines

  1. // --------------------------------------------------------------------------
  2. // File:            FLAGS.HPP
  3. // Path:            ...\REHACK\GENERAL\FLAGS.HPP
  4. // Version:            1.00
  5. // Author:            V. James Krammes
  6. // CIS Id:            75300,1663
  7. // Created on:        15-July-1993
  8. // Modified on:
  9. // Description:        This file contains templated flag setting/clearing
  10. //                    and testing functions.
  11. // Tabs:            4
  12. // --------------------------------------------------------------------------
  13.  
  14. #include "..\general\types.hpp"
  15.  
  16. template <class T>
  17. bool setFlag( T &flags,T mask )
  18. {
  19.  
  20.     bool r = flagSet( flags,mask );
  21.     flags = flags | mask;
  22.     return r;
  23.  
  24. }
  25.  
  26. template <class T>
  27. bool clearFlag( T &flags,T mask )
  28. {
  29.  
  30.     bool r = flagClear( flags,mask );
  31.     flags &= ~mask;
  32.     return r;
  33.  
  34. }
  35.  
  36. template <class T>
  37. bool flagSet( T &flags,T mask )
  38. {
  39.  
  40.     return (flags & mask) == mask ? true : false;
  41.  
  42. }
  43.  
  44. template <class T>
  45. bool flagClear( T &flags,T mask )
  46. {
  47.  
  48.     return flagSet( flags,mask) ? false : true;
  49.  
  50. }
  51.