has_binary_classes.hpp 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  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_BINARY_CLASSES_HPP
  6. #define TT_HAS_BINARY_CLASSES_HPP
  7. struct ret { };
  8. ret ret_val;
  9. class C000 { C000(); public: C000(int) { } };
  10. void operator+(C000, C000) { }
  11. class C001 { C001(); public: C001(int) { } };
  12. ret operator+(C001, C001) { return ret_val; }
  13. class C002 { C002(); public: C002(int) { } };
  14. ret const operator+(C002, C002) { return ret_val; }
  15. class C005 { C005(); public: C005(int) { } };
  16. ret & operator+(C005, C005) { return ret_val; }
  17. class C006 { C006(); public: C006(int) { } };
  18. ret const & operator+(C006, C006) { return ret_val; }
  19. class C009 { C009(); public: C009(int) { } };
  20. void operator+(C009, C009 const) { }
  21. class C010 { C010(); public: C010(int) { } };
  22. ret operator+(C010, C010 const) { return ret_val; }
  23. class C011 { C011(); public: C011(int) { } };
  24. ret const operator+(C011, C011 const) { return ret_val; }
  25. class C014 { C014(); public: C014(int) { } };
  26. ret & operator+(C014, C014 const) { return ret_val; }
  27. class C015 { C015(); public: C015(int) { } };
  28. ret const & operator+(C015, C015 const) { return ret_val; }
  29. class C036 { C036(); public: C036(int) { } };
  30. void operator+(C036, C036 &) { }
  31. class C037 { C037(); public: C037(int) { } };
  32. ret operator+(C037, C037 &) { return ret_val; }
  33. class C038 { C038(); public: C038(int) { } };
  34. ret const operator+(C038, C038 &) { return ret_val; }
  35. class C041 { C041(); public: C041(int) { } };
  36. ret & operator+(C041, C041 &) { return ret_val; }
  37. class C042 { C042(); public: C042(int) { } };
  38. ret const & operator+(C042, C042 &) { return ret_val; }
  39. class C045 { C045(); public: C045(int) { } };
  40. void operator+(C045, C045 const &) { }
  41. class C046 { C046(); public: C046(int) { } };
  42. ret operator+(C046, C046 const &) { return ret_val; }
  43. class C047 { C047(); public: C047(int) { } };
  44. ret const operator+(C047, C047 const &) { return ret_val; }
  45. class C050 { C050(); public: C050(int) { } };
  46. ret & operator+(C050, C050 const &) { return ret_val; }
  47. class C051 { C051(); public: C051(int) { } };
  48. ret const & operator+(C051, C051 const &) { return ret_val; }
  49. class C072 { C072(); public: C072(int) { } };
  50. void operator+(C072 const, C072) { }
  51. class C073 { C073(); public: C073(int) { } };
  52. ret operator+(C073 const, C073) { return ret_val; }
  53. class C074 { C074(); public: C074(int) { } };
  54. ret const operator+(C074 const, C074) { return ret_val; }
  55. class C077 { C077(); public: C077(int) { } };
  56. ret & operator+(C077 const, C077) { return ret_val; }
  57. class C078 { C078(); public: C078(int) { } };
  58. ret const & operator+(C078 const, C078) { return ret_val; }
  59. class C081 { C081(); public: C081(int) { } };
  60. void operator+(C081 const, C081 const) { }
  61. class C082 { C082(); public: C082(int) { } };
  62. ret operator+(C082 const, C082 const) { return ret_val; }
  63. class C083 { C083(); public: C083(int) { } };
  64. ret const operator+(C083 const, C083 const) { return ret_val; }
  65. class C086 { C086(); public: C086(int) { } };
  66. ret & operator+(C086 const, C086 const) { return ret_val; }
  67. class C087 { C087(); public: C087(int) { } };
  68. ret const & operator+(C087 const, C087 const) { return ret_val; }
  69. class C108 { C108(); public: C108(int) { } };
  70. void operator+(C108 const, C108 &) { }
  71. class C109 { C109(); public: C109(int) { } };
  72. ret operator+(C109 const, C109 &) { return ret_val; }
  73. class C110 { C110(); public: C110(int) { } };
  74. ret const operator+(C110 const, C110 &) { return ret_val; }
  75. class C113 { C113(); public: C113(int) { } };
  76. ret & operator+(C113 const, C113 &) { return ret_val; }
  77. class C114 { C114(); public: C114(int) { } };
  78. ret const & operator+(C114 const, C114 &) { return ret_val; }
  79. class C117 { C117(); public: C117(int) { } };
  80. void operator+(C117 const, C117 const &) { }
  81. class C118 { C118(); public: C118(int) { } };
  82. ret operator+(C118 const, C118 const &) { return ret_val; }
  83. class C119 { C119(); public: C119(int) { } };
  84. ret const operator+(C119 const, C119 const &) { return ret_val; }
  85. class C122 { C122(); public: C122(int) { } };
  86. ret & operator+(C122 const, C122 const &) { return ret_val; }
  87. class C123 { C123(); public: C123(int) { } };
  88. ret const & operator+(C123 const, C123 const &) { return ret_val; }
  89. class C288 { C288(); public: C288(int) { } };
  90. void operator+(C288 &, C288) { }
  91. class C289 { C289(); public: C289(int) { } };
  92. ret operator+(C289 &, C289) { return ret_val; }
  93. class C290 { C290(); public: C290(int) { } };
  94. ret const operator+(C290 &, C290) { return ret_val; }
  95. class C293 { C293(); public: C293(int) { } };
  96. ret & operator+(C293 &, C293) { return ret_val; }
  97. class C294 { C294(); public: C294(int) { } };
  98. ret const & operator+(C294 &, C294) { return ret_val; }
  99. class C297 { C297(); public: C297(int) { } };
  100. void operator+(C297 &, C297 const) { }
  101. class C298 { C298(); public: C298(int) { } };
  102. ret operator+(C298 &, C298 const) { return ret_val; }
  103. class C299 { C299(); public: C299(int) { } };
  104. ret const operator+(C299 &, C299 const) { return ret_val; }
  105. class C302 { C302(); public: C302(int) { } };
  106. ret & operator+(C302 &, C302 const) { return ret_val; }
  107. class C303 { C303(); public: C303(int) { } };
  108. ret const & operator+(C303 &, C303 const) { return ret_val; }
  109. class C324 { C324(); public: C324(int) { } };
  110. void operator+(C324 &, C324 &) { }
  111. class C325 { C325(); public: C325(int) { } };
  112. ret operator+(C325 &, C325 &) { return ret_val; }
  113. class C326 { C326(); public: C326(int) { } };
  114. ret const operator+(C326 &, C326 &) { return ret_val; }
  115. class C329 { C329(); public: C329(int) { } };
  116. ret & operator+(C329 &, C329 &) { return ret_val; }
  117. class C330 { C330(); public: C330(int) { } };
  118. ret const & operator+(C330 &, C330 &) { return ret_val; }
  119. class C333 { C333(); public: C333(int) { } };
  120. void operator+(C333 &, C333 const &) { }
  121. class C334 { C334(); public: C334(int) { } };
  122. ret operator+(C334 &, C334 const &) { return ret_val; }
  123. class C335 { C335(); public: C335(int) { } };
  124. ret const operator+(C335 &, C335 const &) { return ret_val; }
  125. class C338 { C338(); public: C338(int) { } };
  126. ret & operator+(C338 &, C338 const &) { return ret_val; }
  127. class C339 { C339(); public: C339(int) { } };
  128. ret const & operator+(C339 &, C339 const &) { return ret_val; }
  129. class C360 { C360(); public: C360(int) { } };
  130. void operator+(C360 const &, C360) { }
  131. class C361 { C361(); public: C361(int) { } };
  132. ret operator+(C361 const &, C361) { return ret_val; }
  133. class C362 { C362(); public: C362(int) { } };
  134. ret const operator+(C362 const &, C362) { return ret_val; }
  135. class C365 { C365(); public: C365(int) { } };
  136. ret & operator+(C365 const &, C365) { return ret_val; }
  137. class C366 { C366(); public: C366(int) { } };
  138. ret const & operator+(C366 const &, C366) { return ret_val; }
  139. class C369 { C369(); public: C369(int) { } };
  140. void operator+(C369 const &, C369 const) { }
  141. class C370 { C370(); public: C370(int) { } };
  142. ret operator+(C370 const &, C370 const) { return ret_val; }
  143. class C371 { C371(); public: C371(int) { } };
  144. ret const operator+(C371 const &, C371 const) { return ret_val; }
  145. class C374 { C374(); public: C374(int) { } };
  146. ret & operator+(C374 const &, C374 const) { return ret_val; }
  147. class C375 { C375(); public: C375(int) { } };
  148. ret const & operator+(C375 const &, C375 const) { return ret_val; }
  149. class C396 { C396(); public: C396(int) { } };
  150. void operator+(C396 const &, C396 &) { }
  151. class C397 { C397(); public: C397(int) { } };
  152. ret operator+(C397 const &, C397 &) { return ret_val; }
  153. class C398 { C398(); public: C398(int) { } };
  154. ret const operator+(C398 const &, C398 &) { return ret_val; }
  155. class C401 { C401(); public: C401(int) { } };
  156. ret & operator+(C401 const &, C401 &) { return ret_val; }
  157. class C402 { C402(); public: C402(int) { } };
  158. ret const & operator+(C402 const &, C402 &) { return ret_val; }
  159. class C405 { C405(); public: C405(int) { } };
  160. void operator+(C405 const &, C405 const &) { }
  161. class C406 { C406(); public: C406(int) { } };
  162. ret operator+(C406 const &, C406 const &) { return ret_val; }
  163. class C407 { C407(); public: C407(int) { } };
  164. ret const operator+(C407 const &, C407 const &) { return ret_val; }
  165. class C410 { C410(); public: C410(int) { } };
  166. ret & operator+(C410 const &, C410 const &) { return ret_val; }
  167. class C411 { C411(); public: C411(int) { } };
  168. ret const & operator+(C411 const &, C411 const &) { return ret_val; }
  169. #endif