has_prefix_classes.hpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // (C) Copyright Frederic Bron 2009-2011.
  2. // Use, modification and distribution are subject to the
  3. // Boost Software License, Version 1.0. (See accompanying file
  4. // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. #ifndef TT_HAS_PREFIX_CLASSES_HPP
  6. #define TT_HAS_PREFIX_CLASSES_HPP
  7. struct ret { };
  8. ret ret_val;
  9. class C000 { C000(); public: C000(int) { } };
  10. void operator++(C000) { }
  11. class C001 { C001(); public: C001(int) { } };
  12. ret operator++(C001) { return ret_val; }
  13. class C002 { C002(); public: C002(int) { } };
  14. ret const operator++(C002) { return ret_val; }
  15. class C005 { C005(); public: C005(int) { } };
  16. ret & operator++(C005) { return ret_val; }
  17. class C006 { C006(); public: C006(int) { } };
  18. ret const & operator++(C006) { return ret_val; }
  19. class C009 { C009(); public: C009(int) { } };
  20. void operator++(C009 const) { }
  21. class C010 { C010(); public: C010(int) { } };
  22. ret operator++(C010 const) { return ret_val; }
  23. class C011 { C011(); public: C011(int) { } };
  24. ret const operator++(C011 const) { return ret_val; }
  25. class C014 { C014(); public: C014(int) { } };
  26. ret & operator++(C014 const) { return ret_val; }
  27. class C015 { C015(); public: C015(int) { } };
  28. ret const & operator++(C015 const) { return ret_val; }
  29. class C036 { C036(); public: C036(int) { } };
  30. void operator++(C036 &) { }
  31. class C037 { C037(); public: C037(int) { } };
  32. ret operator++(C037 &) { return ret_val; }
  33. class C038 { C038(); public: C038(int) { } };
  34. ret const operator++(C038 &) { return ret_val; }
  35. class C041 { C041(); public: C041(int) { } };
  36. ret & operator++(C041 &) { return ret_val; }
  37. class C042 { C042(); public: C042(int) { } };
  38. ret const & operator++(C042 &) { return ret_val; }
  39. class C045 { C045(); public: C045(int) { } };
  40. void operator++(C045 const &) { }
  41. class C046 { C046(); public: C046(int) { } };
  42. ret operator++(C046 const &) { return ret_val; }
  43. class C047 { C047(); public: C047(int) { } };
  44. ret const operator++(C047 const &) { return ret_val; }
  45. class C050 { C050(); public: C050(int) { } };
  46. ret & operator++(C050 const &) { return ret_val; }
  47. class C051 { C051(); public: C051(int) { } };
  48. ret const & operator++(C051 const &) { return ret_val; }
  49. #endif