operators.xml 62 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!--
  3. Copyright 2012 Eric Niebler
  4. Distributed under the Boost
  5. Software License, Version 1.0. (See accompanying
  6. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  7. -->
  8. <header name="boost/proto/operators.hpp">
  9. <para>Contains all the overloaded operators that make it possible to build Proto expression trees. </para>
  10. <namespace name="boost">
  11. <namespace name="proto">
  12. <struct name="is_extension">
  13. <template>
  14. <template-type-parameter name="T"/>
  15. </template>
  16. <inherit><type><classname>is_expr</classname>&lt; T &gt;</type></inherit>
  17. <purpose>Boolean metafunction that can be used to enable the operator overloads in the
  18. <computeroutput>exops</computeroutput> namespace for the specified non-Proto terminal type.</purpose>
  19. </struct>
  20. <function name="operator+">
  21. <type><emphasis>unspecified</emphasis></type>
  22. <template>
  23. <template-type-parameter name="Arg"/>
  24. </template>
  25. <parameter name="arg">
  26. <paramtype>Arg &amp;</paramtype>
  27. </parameter>
  28. </function>
  29. <function name="operator+">
  30. <type><emphasis>unspecified</emphasis></type>
  31. <template>
  32. <template-type-parameter name="Arg"/>
  33. </template>
  34. <parameter name="arg">
  35. <paramtype>Arg const &amp;</paramtype>
  36. </parameter>
  37. </function>
  38. <function name="operator-">
  39. <type><emphasis>unspecified</emphasis></type>
  40. <template>
  41. <template-type-parameter name="Arg"/>
  42. </template>
  43. <parameter name="arg">
  44. <paramtype>Arg &amp;</paramtype>
  45. </parameter>
  46. </function>
  47. <function name="operator-">
  48. <type><emphasis>unspecified</emphasis></type>
  49. <template>
  50. <template-type-parameter name="Arg"/>
  51. </template>
  52. <parameter name="arg">
  53. <paramtype>Arg const &amp;</paramtype>
  54. </parameter>
  55. </function>
  56. <function name="operator*">
  57. <type><emphasis>unspecified</emphasis></type>
  58. <template>
  59. <template-type-parameter name="Arg"/>
  60. </template>
  61. <parameter name="arg">
  62. <paramtype>Arg &amp;</paramtype>
  63. </parameter>
  64. </function>
  65. <function name="operator*">
  66. <type><emphasis>unspecified</emphasis></type>
  67. <template>
  68. <template-type-parameter name="Arg"/>
  69. </template>
  70. <parameter name="arg">
  71. <paramtype>Arg const &amp;</paramtype>
  72. </parameter>
  73. </function>
  74. <function name="operator~">
  75. <type><emphasis>unspecified</emphasis></type>
  76. <template>
  77. <template-type-parameter name="Arg"/>
  78. </template>
  79. <parameter name="arg">
  80. <paramtype>Arg &amp;</paramtype>
  81. </parameter>
  82. </function>
  83. <function name="operator~">
  84. <type><emphasis>unspecified</emphasis></type>
  85. <template>
  86. <template-type-parameter name="Arg"/>
  87. </template>
  88. <parameter name="arg">
  89. <paramtype>Arg const &amp;</paramtype>
  90. </parameter>
  91. </function>
  92. <function name="operator&amp;">
  93. <type><emphasis>unspecified</emphasis></type>
  94. <template>
  95. <template-type-parameter name="Arg"/>
  96. </template>
  97. <parameter name="arg">
  98. <paramtype>Arg &amp;</paramtype>
  99. </parameter>
  100. </function>
  101. <function name="operator&amp;">
  102. <type><emphasis>unspecified</emphasis></type>
  103. <template>
  104. <template-type-parameter name="Arg"/>
  105. </template>
  106. <parameter name="arg">
  107. <paramtype>Arg const &amp;</paramtype>
  108. </parameter>
  109. </function>
  110. <function name="operator!">
  111. <type><emphasis>unspecified</emphasis></type>
  112. <template>
  113. <template-type-parameter name="Arg"/>
  114. </template>
  115. <parameter name="arg">
  116. <paramtype>Arg &amp;</paramtype>
  117. </parameter>
  118. </function>
  119. <function name="operator!">
  120. <type><emphasis>unspecified</emphasis></type>
  121. <template>
  122. <template-type-parameter name="Arg"/>
  123. </template>
  124. <parameter name="arg">
  125. <paramtype>Arg const &amp;</paramtype>
  126. </parameter>
  127. </function>
  128. <function name="operator++">
  129. <type><emphasis>unspecified</emphasis></type>
  130. <template>
  131. <template-type-parameter name="Arg"/>
  132. </template>
  133. <parameter name="arg">
  134. <paramtype>Arg &amp;</paramtype>
  135. </parameter>
  136. </function>
  137. <function name="operator++">
  138. <type><emphasis>unspecified</emphasis></type>
  139. <template>
  140. <template-type-parameter name="Arg"/>
  141. </template>
  142. <parameter name="arg">
  143. <paramtype>Arg const &amp;</paramtype>
  144. </parameter>
  145. </function>
  146. <function name="operator--">
  147. <type><emphasis>unspecified</emphasis></type>
  148. <template>
  149. <template-type-parameter name="Arg"/>
  150. </template>
  151. <parameter name="arg">
  152. <paramtype>Arg &amp;</paramtype>
  153. </parameter>
  154. </function>
  155. <function name="operator--">
  156. <type><emphasis>unspecified</emphasis></type>
  157. <template>
  158. <template-type-parameter name="Arg"/>
  159. </template>
  160. <parameter name="arg">
  161. <paramtype>Arg const &amp;</paramtype>
  162. </parameter>
  163. </function>
  164. <function name="operator++">
  165. <type><emphasis>unspecified</emphasis></type>
  166. <template>
  167. <template-type-parameter name="Arg"/>
  168. </template>
  169. <parameter name="arg">
  170. <paramtype>Arg &amp;</paramtype>
  171. </parameter>
  172. <parameter name="">
  173. <paramtype>int</paramtype>
  174. </parameter>
  175. </function>
  176. <function name="operator++">
  177. <type><emphasis>unspecified</emphasis></type>
  178. <template>
  179. <template-type-parameter name="Arg"/>
  180. </template>
  181. <parameter name="arg">
  182. <paramtype>Arg const &amp;</paramtype>
  183. </parameter>
  184. <parameter name="">
  185. <paramtype>int</paramtype>
  186. </parameter>
  187. </function>
  188. <function name="operator--">
  189. <type><emphasis>unspecified</emphasis></type>
  190. <template>
  191. <template-type-parameter name="Arg"/>
  192. </template>
  193. <parameter name="arg">
  194. <paramtype>Arg &amp;</paramtype>
  195. </parameter>
  196. <parameter name="">
  197. <paramtype>int</paramtype>
  198. </parameter>
  199. </function>
  200. <function name="operator--">
  201. <type><emphasis>unspecified</emphasis></type>
  202. <template>
  203. <template-type-parameter name="Arg"/>
  204. </template>
  205. <parameter name="arg">
  206. <paramtype>Arg const &amp;</paramtype>
  207. </parameter>
  208. <parameter name="">
  209. <paramtype>int</paramtype>
  210. </parameter>
  211. </function>
  212. <function name="operator&lt;&lt;">
  213. <type><emphasis>unspecified</emphasis></type>
  214. <template>
  215. <template-type-parameter name="Left"/>
  216. <template-type-parameter name="Right"/>
  217. </template>
  218. <parameter name="left">
  219. <paramtype>Left &amp;</paramtype>
  220. </parameter>
  221. <parameter name="right">
  222. <paramtype>Right &amp;</paramtype>
  223. </parameter>
  224. </function>
  225. <function name="operator&lt;&lt;">
  226. <type><emphasis>unspecified</emphasis></type>
  227. <template>
  228. <template-type-parameter name="Left"/>
  229. <template-type-parameter name="Right"/>
  230. </template>
  231. <parameter name="left">
  232. <paramtype>Left &amp;</paramtype>
  233. </parameter>
  234. <parameter name="right">
  235. <paramtype>Right const &amp;</paramtype>
  236. </parameter>
  237. </function>
  238. <function name="operator&lt;&lt;">
  239. <type><emphasis>unspecified</emphasis></type>
  240. <template>
  241. <template-type-parameter name="Left"/>
  242. <template-type-parameter name="Right"/>
  243. </template>
  244. <parameter name="left">
  245. <paramtype>Left const &amp;</paramtype>
  246. </parameter>
  247. <parameter name="right">
  248. <paramtype>Right &amp;</paramtype>
  249. </parameter>
  250. </function>
  251. <function name="operator&lt;&lt;">
  252. <type><emphasis>unspecified</emphasis></type>
  253. <template>
  254. <template-type-parameter name="Left"/>
  255. <template-type-parameter name="Right"/>
  256. </template>
  257. <parameter name="left">
  258. <paramtype>Left const &amp;</paramtype>
  259. </parameter>
  260. <parameter name="right">
  261. <paramtype>Right const &amp;</paramtype>
  262. </parameter>
  263. </function>
  264. <function name="operator&gt;&gt;">
  265. <type><emphasis>unspecified</emphasis></type>
  266. <template>
  267. <template-type-parameter name="Left"/>
  268. <template-type-parameter name="Right"/>
  269. </template>
  270. <parameter name="left">
  271. <paramtype>Left &amp;</paramtype>
  272. </parameter>
  273. <parameter name="right">
  274. <paramtype>Right &amp;</paramtype>
  275. </parameter>
  276. </function>
  277. <function name="operator&gt;&gt;">
  278. <type><emphasis>unspecified</emphasis></type>
  279. <template>
  280. <template-type-parameter name="Left"/>
  281. <template-type-parameter name="Right"/>
  282. </template>
  283. <parameter name="left">
  284. <paramtype>Left &amp;</paramtype>
  285. </parameter>
  286. <parameter name="right">
  287. <paramtype>Right const &amp;</paramtype>
  288. </parameter>
  289. </function>
  290. <function name="operator&gt;&gt;">
  291. <type><emphasis>unspecified</emphasis></type>
  292. <template>
  293. <template-type-parameter name="Left"/>
  294. <template-type-parameter name="Right"/>
  295. </template>
  296. <parameter name="left">
  297. <paramtype>Left const &amp;</paramtype>
  298. </parameter>
  299. <parameter name="right">
  300. <paramtype>Right &amp;</paramtype>
  301. </parameter>
  302. </function>
  303. <function name="operator&gt;&gt;">
  304. <type><emphasis>unspecified</emphasis></type>
  305. <template>
  306. <template-type-parameter name="Left"/>
  307. <template-type-parameter name="Right"/>
  308. </template>
  309. <parameter name="left">
  310. <paramtype>Left const &amp;</paramtype>
  311. </parameter>
  312. <parameter name="right">
  313. <paramtype>Right const &amp;</paramtype>
  314. </parameter>
  315. </function>
  316. <function name="operator*">
  317. <type><emphasis>unspecified</emphasis></type>
  318. <template>
  319. <template-type-parameter name="Left"/>
  320. <template-type-parameter name="Right"/>
  321. </template>
  322. <parameter name="left">
  323. <paramtype>Left &amp;</paramtype>
  324. </parameter>
  325. <parameter name="right">
  326. <paramtype>Right &amp;</paramtype>
  327. </parameter>
  328. </function>
  329. <function name="operator*">
  330. <type><emphasis>unspecified</emphasis></type>
  331. <template>
  332. <template-type-parameter name="Left"/>
  333. <template-type-parameter name="Right"/>
  334. </template>
  335. <parameter name="left">
  336. <paramtype>Left &amp;</paramtype>
  337. </parameter>
  338. <parameter name="right">
  339. <paramtype>Right const &amp;</paramtype>
  340. </parameter>
  341. </function>
  342. <function name="operator*">
  343. <type><emphasis>unspecified</emphasis></type>
  344. <template>
  345. <template-type-parameter name="Left"/>
  346. <template-type-parameter name="Right"/>
  347. </template>
  348. <parameter name="left">
  349. <paramtype>Left const &amp;</paramtype>
  350. </parameter>
  351. <parameter name="right">
  352. <paramtype>Right &amp;</paramtype>
  353. </parameter>
  354. </function>
  355. <function name="operator*">
  356. <type><emphasis>unspecified</emphasis></type>
  357. <template>
  358. <template-type-parameter name="Left"/>
  359. <template-type-parameter name="Right"/>
  360. </template>
  361. <parameter name="left">
  362. <paramtype>Left const &amp;</paramtype>
  363. </parameter>
  364. <parameter name="right">
  365. <paramtype>Right const &amp;</paramtype>
  366. </parameter>
  367. </function>
  368. <function name="operator/">
  369. <type><emphasis>unspecified</emphasis></type>
  370. <template>
  371. <template-type-parameter name="Left"/>
  372. <template-type-parameter name="Right"/>
  373. </template>
  374. <parameter name="left">
  375. <paramtype>Left &amp;</paramtype>
  376. </parameter>
  377. <parameter name="right">
  378. <paramtype>Right &amp;</paramtype>
  379. </parameter>
  380. </function>
  381. <function name="operator/">
  382. <type><emphasis>unspecified</emphasis></type>
  383. <template>
  384. <template-type-parameter name="Left"/>
  385. <template-type-parameter name="Right"/>
  386. </template>
  387. <parameter name="left">
  388. <paramtype>Left &amp;</paramtype>
  389. </parameter>
  390. <parameter name="right">
  391. <paramtype>Right const &amp;</paramtype>
  392. </parameter>
  393. </function>
  394. <function name="operator/">
  395. <type><emphasis>unspecified</emphasis></type>
  396. <template>
  397. <template-type-parameter name="Left"/>
  398. <template-type-parameter name="Right"/>
  399. </template>
  400. <parameter name="left">
  401. <paramtype>Left const &amp;</paramtype>
  402. </parameter>
  403. <parameter name="right">
  404. <paramtype>Right &amp;</paramtype>
  405. </parameter>
  406. </function>
  407. <function name="operator/">
  408. <type><emphasis>unspecified</emphasis></type>
  409. <template>
  410. <template-type-parameter name="Left"/>
  411. <template-type-parameter name="Right"/>
  412. </template>
  413. <parameter name="left">
  414. <paramtype>Left const &amp;</paramtype>
  415. </parameter>
  416. <parameter name="right">
  417. <paramtype>Right const &amp;</paramtype>
  418. </parameter>
  419. </function>
  420. <function name="operator%">
  421. <type><emphasis>unspecified</emphasis></type>
  422. <template>
  423. <template-type-parameter name="Left"/>
  424. <template-type-parameter name="Right"/>
  425. </template>
  426. <parameter name="left">
  427. <paramtype>Left &amp;</paramtype>
  428. </parameter>
  429. <parameter name="right">
  430. <paramtype>Right &amp;</paramtype>
  431. </parameter>
  432. </function>
  433. <function name="operator%">
  434. <type><emphasis>unspecified</emphasis></type>
  435. <template>
  436. <template-type-parameter name="Left"/>
  437. <template-type-parameter name="Right"/>
  438. </template>
  439. <parameter name="left">
  440. <paramtype>Left &amp;</paramtype>
  441. </parameter>
  442. <parameter name="right">
  443. <paramtype>Right const &amp;</paramtype>
  444. </parameter>
  445. </function>
  446. <function name="operator%">
  447. <type><emphasis>unspecified</emphasis></type>
  448. <template>
  449. <template-type-parameter name="Left"/>
  450. <template-type-parameter name="Right"/>
  451. </template>
  452. <parameter name="left">
  453. <paramtype>Left const &amp;</paramtype>
  454. </parameter>
  455. <parameter name="right">
  456. <paramtype>Right &amp;</paramtype>
  457. </parameter>
  458. </function>
  459. <function name="operator%">
  460. <type><emphasis>unspecified</emphasis></type>
  461. <template>
  462. <template-type-parameter name="Left"/>
  463. <template-type-parameter name="Right"/>
  464. </template>
  465. <parameter name="left">
  466. <paramtype>Left const &amp;</paramtype>
  467. </parameter>
  468. <parameter name="right">
  469. <paramtype>Right const &amp;</paramtype>
  470. </parameter>
  471. </function>
  472. <function name="operator+">
  473. <type><emphasis>unspecified</emphasis></type>
  474. <template>
  475. <template-type-parameter name="Left"/>
  476. <template-type-parameter name="Right"/>
  477. </template>
  478. <parameter name="left">
  479. <paramtype>Left &amp;</paramtype>
  480. </parameter>
  481. <parameter name="right">
  482. <paramtype>Right &amp;</paramtype>
  483. </parameter>
  484. </function>
  485. <function name="operator+">
  486. <type><emphasis>unspecified</emphasis></type>
  487. <template>
  488. <template-type-parameter name="Left"/>
  489. <template-type-parameter name="Right"/>
  490. </template>
  491. <parameter name="left">
  492. <paramtype>Left &amp;</paramtype>
  493. </parameter>
  494. <parameter name="right">
  495. <paramtype>Right const &amp;</paramtype>
  496. </parameter>
  497. </function>
  498. <function name="operator+">
  499. <type><emphasis>unspecified</emphasis></type>
  500. <template>
  501. <template-type-parameter name="Left"/>
  502. <template-type-parameter name="Right"/>
  503. </template>
  504. <parameter name="left">
  505. <paramtype>Left const &amp;</paramtype>
  506. </parameter>
  507. <parameter name="right">
  508. <paramtype>Right &amp;</paramtype>
  509. </parameter>
  510. </function>
  511. <function name="operator+">
  512. <type><emphasis>unspecified</emphasis></type>
  513. <template>
  514. <template-type-parameter name="Left"/>
  515. <template-type-parameter name="Right"/>
  516. </template>
  517. <parameter name="left">
  518. <paramtype>Left const &amp;</paramtype>
  519. </parameter>
  520. <parameter name="right">
  521. <paramtype>Right const &amp;</paramtype>
  522. </parameter>
  523. </function>
  524. <function name="operator-">
  525. <type><emphasis>unspecified</emphasis></type>
  526. <template>
  527. <template-type-parameter name="Left"/>
  528. <template-type-parameter name="Right"/>
  529. </template>
  530. <parameter name="left">
  531. <paramtype>Left &amp;</paramtype>
  532. </parameter>
  533. <parameter name="right">
  534. <paramtype>Right &amp;</paramtype>
  535. </parameter>
  536. </function>
  537. <function name="operator-">
  538. <type><emphasis>unspecified</emphasis></type>
  539. <template>
  540. <template-type-parameter name="Left"/>
  541. <template-type-parameter name="Right"/>
  542. </template>
  543. <parameter name="left">
  544. <paramtype>Left &amp;</paramtype>
  545. </parameter>
  546. <parameter name="right">
  547. <paramtype>Right const &amp;</paramtype>
  548. </parameter>
  549. </function>
  550. <function name="operator-">
  551. <type><emphasis>unspecified</emphasis></type>
  552. <template>
  553. <template-type-parameter name="Left"/>
  554. <template-type-parameter name="Right"/>
  555. </template>
  556. <parameter name="left">
  557. <paramtype>Left const &amp;</paramtype>
  558. </parameter>
  559. <parameter name="right">
  560. <paramtype>Right &amp;</paramtype>
  561. </parameter>
  562. </function>
  563. <function name="operator-">
  564. <type><emphasis>unspecified</emphasis></type>
  565. <template>
  566. <template-type-parameter name="Left"/>
  567. <template-type-parameter name="Right"/>
  568. </template>
  569. <parameter name="left">
  570. <paramtype>Left const &amp;</paramtype>
  571. </parameter>
  572. <parameter name="right">
  573. <paramtype>Right const &amp;</paramtype>
  574. </parameter>
  575. </function>
  576. <function name="operator&lt;">
  577. <type><emphasis>unspecified</emphasis></type>
  578. <template>
  579. <template-type-parameter name="Left"/>
  580. <template-type-parameter name="Right"/>
  581. </template>
  582. <parameter name="left">
  583. <paramtype>Left &amp;</paramtype>
  584. </parameter>
  585. <parameter name="right">
  586. <paramtype>Right &amp;</paramtype>
  587. </parameter>
  588. </function>
  589. <function name="operator&lt;">
  590. <type><emphasis>unspecified</emphasis></type>
  591. <template>
  592. <template-type-parameter name="Left"/>
  593. <template-type-parameter name="Right"/>
  594. </template>
  595. <parameter name="left">
  596. <paramtype>Left &amp;</paramtype>
  597. </parameter>
  598. <parameter name="right">
  599. <paramtype>Right const &amp;</paramtype>
  600. </parameter>
  601. </function>
  602. <function name="operator&lt;">
  603. <type><emphasis>unspecified</emphasis></type>
  604. <template>
  605. <template-type-parameter name="Left"/>
  606. <template-type-parameter name="Right"/>
  607. </template>
  608. <parameter name="left">
  609. <paramtype>Left const &amp;</paramtype>
  610. </parameter>
  611. <parameter name="right">
  612. <paramtype>Right &amp;</paramtype>
  613. </parameter>
  614. </function>
  615. <function name="operator&lt;">
  616. <type><emphasis>unspecified</emphasis></type>
  617. <template>
  618. <template-type-parameter name="Left"/>
  619. <template-type-parameter name="Right"/>
  620. </template>
  621. <parameter name="left">
  622. <paramtype>Left const &amp;</paramtype>
  623. </parameter>
  624. <parameter name="right">
  625. <paramtype>Right const &amp;</paramtype>
  626. </parameter>
  627. </function>
  628. <function name="operator&gt;">
  629. <type><emphasis>unspecified</emphasis></type>
  630. <template>
  631. <template-type-parameter name="Left"/>
  632. <template-type-parameter name="Right"/>
  633. </template>
  634. <parameter name="left">
  635. <paramtype>Left &amp;</paramtype>
  636. </parameter>
  637. <parameter name="right">
  638. <paramtype>Right &amp;</paramtype>
  639. </parameter>
  640. </function>
  641. <function name="operator&gt;">
  642. <type><emphasis>unspecified</emphasis></type>
  643. <template>
  644. <template-type-parameter name="Left"/>
  645. <template-type-parameter name="Right"/>
  646. </template>
  647. <parameter name="left">
  648. <paramtype>Left &amp;</paramtype>
  649. </parameter>
  650. <parameter name="right">
  651. <paramtype>Right const &amp;</paramtype>
  652. </parameter>
  653. </function>
  654. <function name="operator&gt;">
  655. <type><emphasis>unspecified</emphasis></type>
  656. <template>
  657. <template-type-parameter name="Left"/>
  658. <template-type-parameter name="Right"/>
  659. </template>
  660. <parameter name="left">
  661. <paramtype>Left const &amp;</paramtype>
  662. </parameter>
  663. <parameter name="right">
  664. <paramtype>Right &amp;</paramtype>
  665. </parameter>
  666. </function>
  667. <function name="operator&gt;">
  668. <type><emphasis>unspecified</emphasis></type>
  669. <template>
  670. <template-type-parameter name="Left"/>
  671. <template-type-parameter name="Right"/>
  672. </template>
  673. <parameter name="left">
  674. <paramtype>Left const &amp;</paramtype>
  675. </parameter>
  676. <parameter name="right">
  677. <paramtype>Right const &amp;</paramtype>
  678. </parameter>
  679. </function>
  680. <function name="operator&lt;=">
  681. <type><emphasis>unspecified</emphasis></type>
  682. <template>
  683. <template-type-parameter name="Left"/>
  684. <template-type-parameter name="Right"/>
  685. </template>
  686. <parameter name="left">
  687. <paramtype>Left &amp;</paramtype>
  688. </parameter>
  689. <parameter name="right">
  690. <paramtype>Right &amp;</paramtype>
  691. </parameter>
  692. </function>
  693. <function name="operator&lt;=">
  694. <type><emphasis>unspecified</emphasis></type>
  695. <template>
  696. <template-type-parameter name="Left"/>
  697. <template-type-parameter name="Right"/>
  698. </template>
  699. <parameter name="left">
  700. <paramtype>Left &amp;</paramtype>
  701. </parameter>
  702. <parameter name="right">
  703. <paramtype>Right const &amp;</paramtype>
  704. </parameter>
  705. </function>
  706. <function name="operator&lt;=">
  707. <type><emphasis>unspecified</emphasis></type>
  708. <template>
  709. <template-type-parameter name="Left"/>
  710. <template-type-parameter name="Right"/>
  711. </template>
  712. <parameter name="left">
  713. <paramtype>Left const &amp;</paramtype>
  714. </parameter>
  715. <parameter name="right">
  716. <paramtype>Right &amp;</paramtype>
  717. </parameter>
  718. </function>
  719. <function name="operator&lt;=">
  720. <type><emphasis>unspecified</emphasis></type>
  721. <template>
  722. <template-type-parameter name="Left"/>
  723. <template-type-parameter name="Right"/>
  724. </template>
  725. <parameter name="left">
  726. <paramtype>Left const &amp;</paramtype>
  727. </parameter>
  728. <parameter name="right">
  729. <paramtype>Right const &amp;</paramtype>
  730. </parameter>
  731. </function>
  732. <function name="operator&gt;=">
  733. <type><emphasis>unspecified</emphasis></type>
  734. <template>
  735. <template-type-parameter name="Left"/>
  736. <template-type-parameter name="Right"/>
  737. </template>
  738. <parameter name="left">
  739. <paramtype>Left &amp;</paramtype>
  740. </parameter>
  741. <parameter name="right">
  742. <paramtype>Right &amp;</paramtype>
  743. </parameter>
  744. </function>
  745. <function name="operator&gt;=">
  746. <type><emphasis>unspecified</emphasis></type>
  747. <template>
  748. <template-type-parameter name="Left"/>
  749. <template-type-parameter name="Right"/>
  750. </template>
  751. <parameter name="left">
  752. <paramtype>Left &amp;</paramtype>
  753. </parameter>
  754. <parameter name="right">
  755. <paramtype>Right const &amp;</paramtype>
  756. </parameter>
  757. </function>
  758. <function name="operator&gt;=">
  759. <type><emphasis>unspecified</emphasis></type>
  760. <template>
  761. <template-type-parameter name="Left"/>
  762. <template-type-parameter name="Right"/>
  763. </template>
  764. <parameter name="left">
  765. <paramtype>Left const &amp;</paramtype>
  766. </parameter>
  767. <parameter name="right">
  768. <paramtype>Right &amp;</paramtype>
  769. </parameter>
  770. </function>
  771. <function name="operator&gt;=">
  772. <type><emphasis>unspecified</emphasis></type>
  773. <template>
  774. <template-type-parameter name="Left"/>
  775. <template-type-parameter name="Right"/>
  776. </template>
  777. <parameter name="left">
  778. <paramtype>Left const &amp;</paramtype>
  779. </parameter>
  780. <parameter name="right">
  781. <paramtype>Right const &amp;</paramtype>
  782. </parameter>
  783. </function>
  784. <function name="operator==">
  785. <type><emphasis>unspecified</emphasis></type>
  786. <template>
  787. <template-type-parameter name="Left"/>
  788. <template-type-parameter name="Right"/>
  789. </template>
  790. <parameter name="left">
  791. <paramtype>Left &amp;</paramtype>
  792. </parameter>
  793. <parameter name="right">
  794. <paramtype>Right &amp;</paramtype>
  795. </parameter>
  796. </function>
  797. <function name="operator==">
  798. <type><emphasis>unspecified</emphasis></type>
  799. <template>
  800. <template-type-parameter name="Left"/>
  801. <template-type-parameter name="Right"/>
  802. </template>
  803. <parameter name="left">
  804. <paramtype>Left &amp;</paramtype>
  805. </parameter>
  806. <parameter name="right">
  807. <paramtype>Right const &amp;</paramtype>
  808. </parameter>
  809. </function>
  810. <function name="operator==">
  811. <type><emphasis>unspecified</emphasis></type>
  812. <template>
  813. <template-type-parameter name="Left"/>
  814. <template-type-parameter name="Right"/>
  815. </template>
  816. <parameter name="left">
  817. <paramtype>Left const &amp;</paramtype>
  818. </parameter>
  819. <parameter name="right">
  820. <paramtype>Right &amp;</paramtype>
  821. </parameter>
  822. </function>
  823. <function name="operator==">
  824. <type><emphasis>unspecified</emphasis></type>
  825. <template>
  826. <template-type-parameter name="Left"/>
  827. <template-type-parameter name="Right"/>
  828. </template>
  829. <parameter name="left">
  830. <paramtype>Left const &amp;</paramtype>
  831. </parameter>
  832. <parameter name="right">
  833. <paramtype>Right const &amp;</paramtype>
  834. </parameter>
  835. </function>
  836. <function name="operator!=">
  837. <type><emphasis>unspecified</emphasis></type>
  838. <template>
  839. <template-type-parameter name="Left"/>
  840. <template-type-parameter name="Right"/>
  841. </template>
  842. <parameter name="left">
  843. <paramtype>Left &amp;</paramtype>
  844. </parameter>
  845. <parameter name="right">
  846. <paramtype>Right &amp;</paramtype>
  847. </parameter>
  848. </function>
  849. <function name="operator!=">
  850. <type><emphasis>unspecified</emphasis></type>
  851. <template>
  852. <template-type-parameter name="Left"/>
  853. <template-type-parameter name="Right"/>
  854. </template>
  855. <parameter name="left">
  856. <paramtype>Left &amp;</paramtype>
  857. </parameter>
  858. <parameter name="right">
  859. <paramtype>Right const &amp;</paramtype>
  860. </parameter>
  861. </function>
  862. <function name="operator!=">
  863. <type><emphasis>unspecified</emphasis></type>
  864. <template>
  865. <template-type-parameter name="Left"/>
  866. <template-type-parameter name="Right"/>
  867. </template>
  868. <parameter name="left">
  869. <paramtype>Left const &amp;</paramtype>
  870. </parameter>
  871. <parameter name="right">
  872. <paramtype>Right &amp;</paramtype>
  873. </parameter>
  874. </function>
  875. <function name="operator!=">
  876. <type><emphasis>unspecified</emphasis></type>
  877. <template>
  878. <template-type-parameter name="Left"/>
  879. <template-type-parameter name="Right"/>
  880. </template>
  881. <parameter name="left">
  882. <paramtype>Left const &amp;</paramtype>
  883. </parameter>
  884. <parameter name="right">
  885. <paramtype>Right const &amp;</paramtype>
  886. </parameter>
  887. </function>
  888. <function name="operator||">
  889. <type><emphasis>unspecified</emphasis></type>
  890. <template>
  891. <template-type-parameter name="Left"/>
  892. <template-type-parameter name="Right"/>
  893. </template>
  894. <parameter name="left">
  895. <paramtype>Left &amp;</paramtype>
  896. </parameter>
  897. <parameter name="right">
  898. <paramtype>Right &amp;</paramtype>
  899. </parameter>
  900. </function>
  901. <function name="operator||">
  902. <type><emphasis>unspecified</emphasis></type>
  903. <template>
  904. <template-type-parameter name="Left"/>
  905. <template-type-parameter name="Right"/>
  906. </template>
  907. <parameter name="left">
  908. <paramtype>Left &amp;</paramtype>
  909. </parameter>
  910. <parameter name="right">
  911. <paramtype>Right const &amp;</paramtype>
  912. </parameter>
  913. </function>
  914. <function name="operator||">
  915. <type><emphasis>unspecified</emphasis></type>
  916. <template>
  917. <template-type-parameter name="Left"/>
  918. <template-type-parameter name="Right"/>
  919. </template>
  920. <parameter name="left">
  921. <paramtype>Left const &amp;</paramtype>
  922. </parameter>
  923. <parameter name="right">
  924. <paramtype>Right &amp;</paramtype>
  925. </parameter>
  926. </function>
  927. <function name="operator||">
  928. <type><emphasis>unspecified</emphasis></type>
  929. <template>
  930. <template-type-parameter name="Left"/>
  931. <template-type-parameter name="Right"/>
  932. </template>
  933. <parameter name="left">
  934. <paramtype>Left const &amp;</paramtype>
  935. </parameter>
  936. <parameter name="right">
  937. <paramtype>Right const &amp;</paramtype>
  938. </parameter>
  939. </function>
  940. <function name="operator&amp;&amp;">
  941. <type><emphasis>unspecified</emphasis></type>
  942. <template>
  943. <template-type-parameter name="Left"/>
  944. <template-type-parameter name="Right"/>
  945. </template>
  946. <parameter name="left">
  947. <paramtype>Left &amp;</paramtype>
  948. </parameter>
  949. <parameter name="right">
  950. <paramtype>Right &amp;</paramtype>
  951. </parameter>
  952. </function>
  953. <function name="operator&amp;&amp;">
  954. <type><emphasis>unspecified</emphasis></type>
  955. <template>
  956. <template-type-parameter name="Left"/>
  957. <template-type-parameter name="Right"/>
  958. </template>
  959. <parameter name="left">
  960. <paramtype>Left &amp;</paramtype>
  961. </parameter>
  962. <parameter name="right">
  963. <paramtype>Right const &amp;</paramtype>
  964. </parameter>
  965. </function>
  966. <function name="operator&amp;&amp;">
  967. <type><emphasis>unspecified</emphasis></type>
  968. <template>
  969. <template-type-parameter name="Left"/>
  970. <template-type-parameter name="Right"/>
  971. </template>
  972. <parameter name="left">
  973. <paramtype>Left const &amp;</paramtype>
  974. </parameter>
  975. <parameter name="right">
  976. <paramtype>Right &amp;</paramtype>
  977. </parameter>
  978. </function>
  979. <function name="operator&amp;&amp;">
  980. <type><emphasis>unspecified</emphasis></type>
  981. <template>
  982. <template-type-parameter name="Left"/>
  983. <template-type-parameter name="Right"/>
  984. </template>
  985. <parameter name="left">
  986. <paramtype>Left const &amp;</paramtype>
  987. </parameter>
  988. <parameter name="right">
  989. <paramtype>Right const &amp;</paramtype>
  990. </parameter>
  991. </function>
  992. <function name="operator&amp;">
  993. <type><emphasis>unspecified</emphasis></type>
  994. <template>
  995. <template-type-parameter name="Left"/>
  996. <template-type-parameter name="Right"/>
  997. </template>
  998. <parameter name="left">
  999. <paramtype>Left &amp;</paramtype>
  1000. </parameter>
  1001. <parameter name="right">
  1002. <paramtype>Right &amp;</paramtype>
  1003. </parameter>
  1004. </function>
  1005. <function name="operator&amp;">
  1006. <type><emphasis>unspecified</emphasis></type>
  1007. <template>
  1008. <template-type-parameter name="Left"/>
  1009. <template-type-parameter name="Right"/>
  1010. </template>
  1011. <parameter name="left">
  1012. <paramtype>Left &amp;</paramtype>
  1013. </parameter>
  1014. <parameter name="right">
  1015. <paramtype>Right const &amp;</paramtype>
  1016. </parameter>
  1017. </function>
  1018. <function name="operator&amp;">
  1019. <type><emphasis>unspecified</emphasis></type>
  1020. <template>
  1021. <template-type-parameter name="Left"/>
  1022. <template-type-parameter name="Right"/>
  1023. </template>
  1024. <parameter name="left">
  1025. <paramtype>Left const &amp;</paramtype>
  1026. </parameter>
  1027. <parameter name="right">
  1028. <paramtype>Right &amp;</paramtype>
  1029. </parameter>
  1030. </function>
  1031. <function name="operator&amp;">
  1032. <type><emphasis>unspecified</emphasis></type>
  1033. <template>
  1034. <template-type-parameter name="Left"/>
  1035. <template-type-parameter name="Right"/>
  1036. </template>
  1037. <parameter name="left">
  1038. <paramtype>Left const &amp;</paramtype>
  1039. </parameter>
  1040. <parameter name="right">
  1041. <paramtype>Right const &amp;</paramtype>
  1042. </parameter>
  1043. </function>
  1044. <function name="operator|">
  1045. <type><emphasis>unspecified</emphasis></type>
  1046. <template>
  1047. <template-type-parameter name="Left"/>
  1048. <template-type-parameter name="Right"/>
  1049. </template>
  1050. <parameter name="left">
  1051. <paramtype>Left &amp;</paramtype>
  1052. </parameter>
  1053. <parameter name="right">
  1054. <paramtype>Right &amp;</paramtype>
  1055. </parameter>
  1056. </function>
  1057. <function name="operator|">
  1058. <type><emphasis>unspecified</emphasis></type>
  1059. <template>
  1060. <template-type-parameter name="Left"/>
  1061. <template-type-parameter name="Right"/>
  1062. </template>
  1063. <parameter name="left">
  1064. <paramtype>Left &amp;</paramtype>
  1065. </parameter>
  1066. <parameter name="right">
  1067. <paramtype>Right const &amp;</paramtype>
  1068. </parameter>
  1069. </function>
  1070. <function name="operator|">
  1071. <type><emphasis>unspecified</emphasis></type>
  1072. <template>
  1073. <template-type-parameter name="Left"/>
  1074. <template-type-parameter name="Right"/>
  1075. </template>
  1076. <parameter name="left">
  1077. <paramtype>Left const &amp;</paramtype>
  1078. </parameter>
  1079. <parameter name="right">
  1080. <paramtype>Right &amp;</paramtype>
  1081. </parameter>
  1082. </function>
  1083. <function name="operator|">
  1084. <type><emphasis>unspecified</emphasis></type>
  1085. <template>
  1086. <template-type-parameter name="Left"/>
  1087. <template-type-parameter name="Right"/>
  1088. </template>
  1089. <parameter name="left">
  1090. <paramtype>Left const &amp;</paramtype>
  1091. </parameter>
  1092. <parameter name="right">
  1093. <paramtype>Right const &amp;</paramtype>
  1094. </parameter>
  1095. </function>
  1096. <function name="operator^">
  1097. <type><emphasis>unspecified</emphasis></type>
  1098. <template>
  1099. <template-type-parameter name="Left"/>
  1100. <template-type-parameter name="Right"/>
  1101. </template>
  1102. <parameter name="left">
  1103. <paramtype>Left &amp;</paramtype>
  1104. </parameter>
  1105. <parameter name="right">
  1106. <paramtype>Right &amp;</paramtype>
  1107. </parameter>
  1108. </function>
  1109. <function name="operator^">
  1110. <type><emphasis>unspecified</emphasis></type>
  1111. <template>
  1112. <template-type-parameter name="Left"/>
  1113. <template-type-parameter name="Right"/>
  1114. </template>
  1115. <parameter name="left">
  1116. <paramtype>Left &amp;</paramtype>
  1117. </parameter>
  1118. <parameter name="right">
  1119. <paramtype>Right const &amp;</paramtype>
  1120. </parameter>
  1121. </function>
  1122. <function name="operator^">
  1123. <type><emphasis>unspecified</emphasis></type>
  1124. <template>
  1125. <template-type-parameter name="Left"/>
  1126. <template-type-parameter name="Right"/>
  1127. </template>
  1128. <parameter name="left">
  1129. <paramtype>Left const &amp;</paramtype>
  1130. </parameter>
  1131. <parameter name="right">
  1132. <paramtype>Right &amp;</paramtype>
  1133. </parameter>
  1134. </function>
  1135. <function name="operator^">
  1136. <type><emphasis>unspecified</emphasis></type>
  1137. <template>
  1138. <template-type-parameter name="Left"/>
  1139. <template-type-parameter name="Right"/>
  1140. </template>
  1141. <parameter name="left">
  1142. <paramtype>Left const &amp;</paramtype>
  1143. </parameter>
  1144. <parameter name="right">
  1145. <paramtype>Right const &amp;</paramtype>
  1146. </parameter>
  1147. </function>
  1148. <function name="operator,">
  1149. <type><emphasis>unspecified</emphasis></type>
  1150. <template>
  1151. <template-type-parameter name="Left"/>
  1152. <template-type-parameter name="Right"/>
  1153. </template>
  1154. <parameter name="left">
  1155. <paramtype>Left &amp;</paramtype>
  1156. </parameter>
  1157. <parameter name="right">
  1158. <paramtype>Right &amp;</paramtype>
  1159. </parameter>
  1160. </function>
  1161. <function name="operator,">
  1162. <type><emphasis>unspecified</emphasis></type>
  1163. <template>
  1164. <template-type-parameter name="Left"/>
  1165. <template-type-parameter name="Right"/>
  1166. </template>
  1167. <parameter name="left">
  1168. <paramtype>Left &amp;</paramtype>
  1169. </parameter>
  1170. <parameter name="right">
  1171. <paramtype>Right const &amp;</paramtype>
  1172. </parameter>
  1173. </function>
  1174. <function name="operator,">
  1175. <type><emphasis>unspecified</emphasis></type>
  1176. <template>
  1177. <template-type-parameter name="Left"/>
  1178. <template-type-parameter name="Right"/>
  1179. </template>
  1180. <parameter name="left">
  1181. <paramtype>Left const &amp;</paramtype>
  1182. </parameter>
  1183. <parameter name="right">
  1184. <paramtype>Right &amp;</paramtype>
  1185. </parameter>
  1186. </function>
  1187. <function name="operator,">
  1188. <type><emphasis>unspecified</emphasis></type>
  1189. <template>
  1190. <template-type-parameter name="Left"/>
  1191. <template-type-parameter name="Right"/>
  1192. </template>
  1193. <parameter name="left">
  1194. <paramtype>Left const &amp;</paramtype>
  1195. </parameter>
  1196. <parameter name="right">
  1197. <paramtype>Right const &amp;</paramtype>
  1198. </parameter>
  1199. </function>
  1200. <function name="operator-&gt;*">
  1201. <type><emphasis>unspecified</emphasis></type>
  1202. <template>
  1203. <template-type-parameter name="Left"/>
  1204. <template-type-parameter name="Right"/>
  1205. </template>
  1206. <parameter name="left">
  1207. <paramtype>Left &amp;</paramtype>
  1208. </parameter>
  1209. <parameter name="right">
  1210. <paramtype>Right &amp;</paramtype>
  1211. </parameter>
  1212. </function>
  1213. <function name="operator-&gt;*">
  1214. <type><emphasis>unspecified</emphasis></type>
  1215. <template>
  1216. <template-type-parameter name="Left"/>
  1217. <template-type-parameter name="Right"/>
  1218. </template>
  1219. <parameter name="left">
  1220. <paramtype>Left &amp;</paramtype>
  1221. </parameter>
  1222. <parameter name="right">
  1223. <paramtype>Right const &amp;</paramtype>
  1224. </parameter>
  1225. </function>
  1226. <function name="operator-&gt;*">
  1227. <type><emphasis>unspecified</emphasis></type>
  1228. <template>
  1229. <template-type-parameter name="Left"/>
  1230. <template-type-parameter name="Right"/>
  1231. </template>
  1232. <parameter name="left">
  1233. <paramtype>Left const &amp;</paramtype>
  1234. </parameter>
  1235. <parameter name="right">
  1236. <paramtype>Right &amp;</paramtype>
  1237. </parameter>
  1238. </function>
  1239. <function name="operator-&gt;*">
  1240. <type><emphasis>unspecified</emphasis></type>
  1241. <template>
  1242. <template-type-parameter name="Left"/>
  1243. <template-type-parameter name="Right"/>
  1244. </template>
  1245. <parameter name="left">
  1246. <paramtype>Left const &amp;</paramtype>
  1247. </parameter>
  1248. <parameter name="right">
  1249. <paramtype>Right const &amp;</paramtype>
  1250. </parameter>
  1251. </function>
  1252. <function name="operator&lt;&lt;=">
  1253. <type><emphasis>unspecified</emphasis></type>
  1254. <template>
  1255. <template-type-parameter name="Left"/>
  1256. <template-type-parameter name="Right"/>
  1257. </template>
  1258. <parameter name="left">
  1259. <paramtype>Left &amp;</paramtype>
  1260. </parameter>
  1261. <parameter name="right">
  1262. <paramtype>Right &amp;</paramtype>
  1263. </parameter>
  1264. </function>
  1265. <function name="operator&lt;&lt;=">
  1266. <type><emphasis>unspecified</emphasis></type>
  1267. <template>
  1268. <template-type-parameter name="Left"/>
  1269. <template-type-parameter name="Right"/>
  1270. </template>
  1271. <parameter name="left">
  1272. <paramtype>Left &amp;</paramtype>
  1273. </parameter>
  1274. <parameter name="right">
  1275. <paramtype>Right const &amp;</paramtype>
  1276. </parameter>
  1277. </function>
  1278. <function name="operator&lt;&lt;=">
  1279. <type><emphasis>unspecified</emphasis></type>
  1280. <template>
  1281. <template-type-parameter name="Left"/>
  1282. <template-type-parameter name="Right"/>
  1283. </template>
  1284. <parameter name="left">
  1285. <paramtype>Left const &amp;</paramtype>
  1286. </parameter>
  1287. <parameter name="right">
  1288. <paramtype>Right &amp;</paramtype>
  1289. </parameter>
  1290. </function>
  1291. <function name="operator&lt;&lt;=">
  1292. <type><emphasis>unspecified</emphasis></type>
  1293. <template>
  1294. <template-type-parameter name="Left"/>
  1295. <template-type-parameter name="Right"/>
  1296. </template>
  1297. <parameter name="left">
  1298. <paramtype>Left const &amp;</paramtype>
  1299. </parameter>
  1300. <parameter name="right">
  1301. <paramtype>Right const &amp;</paramtype>
  1302. </parameter>
  1303. </function>
  1304. <function name="operator&gt;&gt;=">
  1305. <type><emphasis>unspecified</emphasis></type>
  1306. <template>
  1307. <template-type-parameter name="Left"/>
  1308. <template-type-parameter name="Right"/>
  1309. </template>
  1310. <parameter name="left">
  1311. <paramtype>Left &amp;</paramtype>
  1312. </parameter>
  1313. <parameter name="right">
  1314. <paramtype>Right &amp;</paramtype>
  1315. </parameter>
  1316. </function>
  1317. <function name="operator&gt;&gt;=">
  1318. <type><emphasis>unspecified</emphasis></type>
  1319. <template>
  1320. <template-type-parameter name="Left"/>
  1321. <template-type-parameter name="Right"/>
  1322. </template>
  1323. <parameter name="left">
  1324. <paramtype>Left &amp;</paramtype>
  1325. </parameter>
  1326. <parameter name="right">
  1327. <paramtype>Right const &amp;</paramtype>
  1328. </parameter>
  1329. </function>
  1330. <function name="operator&gt;&gt;=">
  1331. <type><emphasis>unspecified</emphasis></type>
  1332. <template>
  1333. <template-type-parameter name="Left"/>
  1334. <template-type-parameter name="Right"/>
  1335. </template>
  1336. <parameter name="left">
  1337. <paramtype>Left const &amp;</paramtype>
  1338. </parameter>
  1339. <parameter name="right">
  1340. <paramtype>Right &amp;</paramtype>
  1341. </parameter>
  1342. </function>
  1343. <function name="operator&gt;&gt;=">
  1344. <type><emphasis>unspecified</emphasis></type>
  1345. <template>
  1346. <template-type-parameter name="Left"/>
  1347. <template-type-parameter name="Right"/>
  1348. </template>
  1349. <parameter name="left">
  1350. <paramtype>Left const &amp;</paramtype>
  1351. </parameter>
  1352. <parameter name="right">
  1353. <paramtype>Right const &amp;</paramtype>
  1354. </parameter>
  1355. </function>
  1356. <function name="operator*=">
  1357. <type><emphasis>unspecified</emphasis></type>
  1358. <template>
  1359. <template-type-parameter name="Left"/>
  1360. <template-type-parameter name="Right"/>
  1361. </template>
  1362. <parameter name="left">
  1363. <paramtype>Left &amp;</paramtype>
  1364. </parameter>
  1365. <parameter name="right">
  1366. <paramtype>Right &amp;</paramtype>
  1367. </parameter>
  1368. </function>
  1369. <function name="operator*=">
  1370. <type><emphasis>unspecified</emphasis></type>
  1371. <template>
  1372. <template-type-parameter name="Left"/>
  1373. <template-type-parameter name="Right"/>
  1374. </template>
  1375. <parameter name="left">
  1376. <paramtype>Left &amp;</paramtype>
  1377. </parameter>
  1378. <parameter name="right">
  1379. <paramtype>Right const &amp;</paramtype>
  1380. </parameter>
  1381. </function>
  1382. <function name="operator*=">
  1383. <type><emphasis>unspecified</emphasis></type>
  1384. <template>
  1385. <template-type-parameter name="Left"/>
  1386. <template-type-parameter name="Right"/>
  1387. </template>
  1388. <parameter name="left">
  1389. <paramtype>Left const &amp;</paramtype>
  1390. </parameter>
  1391. <parameter name="right">
  1392. <paramtype>Right &amp;</paramtype>
  1393. </parameter>
  1394. </function>
  1395. <function name="operator*=">
  1396. <type><emphasis>unspecified</emphasis></type>
  1397. <template>
  1398. <template-type-parameter name="Left"/>
  1399. <template-type-parameter name="Right"/>
  1400. </template>
  1401. <parameter name="left">
  1402. <paramtype>Left const &amp;</paramtype>
  1403. </parameter>
  1404. <parameter name="right">
  1405. <paramtype>Right const &amp;</paramtype>
  1406. </parameter>
  1407. </function>
  1408. <function name="operator/=">
  1409. <type><emphasis>unspecified</emphasis></type>
  1410. <template>
  1411. <template-type-parameter name="Left"/>
  1412. <template-type-parameter name="Right"/>
  1413. </template>
  1414. <parameter name="left">
  1415. <paramtype>Left &amp;</paramtype>
  1416. </parameter>
  1417. <parameter name="right">
  1418. <paramtype>Right &amp;</paramtype>
  1419. </parameter>
  1420. </function>
  1421. <function name="operator/=">
  1422. <type><emphasis>unspecified</emphasis></type>
  1423. <template>
  1424. <template-type-parameter name="Left"/>
  1425. <template-type-parameter name="Right"/>
  1426. </template>
  1427. <parameter name="left">
  1428. <paramtype>Left &amp;</paramtype>
  1429. </parameter>
  1430. <parameter name="right">
  1431. <paramtype>Right const &amp;</paramtype>
  1432. </parameter>
  1433. </function>
  1434. <function name="operator/=">
  1435. <type><emphasis>unspecified</emphasis></type>
  1436. <template>
  1437. <template-type-parameter name="Left"/>
  1438. <template-type-parameter name="Right"/>
  1439. </template>
  1440. <parameter name="left">
  1441. <paramtype>Left const &amp;</paramtype>
  1442. </parameter>
  1443. <parameter name="right">
  1444. <paramtype>Right &amp;</paramtype>
  1445. </parameter>
  1446. </function>
  1447. <function name="operator/=">
  1448. <type><emphasis>unspecified</emphasis></type>
  1449. <template>
  1450. <template-type-parameter name="Left"/>
  1451. <template-type-parameter name="Right"/>
  1452. </template>
  1453. <parameter name="left">
  1454. <paramtype>Left const &amp;</paramtype>
  1455. </parameter>
  1456. <parameter name="right">
  1457. <paramtype>Right const &amp;</paramtype>
  1458. </parameter>
  1459. </function>
  1460. <function name="operator%=">
  1461. <type><emphasis>unspecified</emphasis></type>
  1462. <template>
  1463. <template-type-parameter name="Left"/>
  1464. <template-type-parameter name="Right"/>
  1465. </template>
  1466. <parameter name="left">
  1467. <paramtype>Left &amp;</paramtype>
  1468. </parameter>
  1469. <parameter name="right">
  1470. <paramtype>Right &amp;</paramtype>
  1471. </parameter>
  1472. </function>
  1473. <function name="operator%=">
  1474. <type><emphasis>unspecified</emphasis></type>
  1475. <template>
  1476. <template-type-parameter name="Left"/>
  1477. <template-type-parameter name="Right"/>
  1478. </template>
  1479. <parameter name="left">
  1480. <paramtype>Left &amp;</paramtype>
  1481. </parameter>
  1482. <parameter name="right">
  1483. <paramtype>Right const &amp;</paramtype>
  1484. </parameter>
  1485. </function>
  1486. <function name="operator%=">
  1487. <type><emphasis>unspecified</emphasis></type>
  1488. <template>
  1489. <template-type-parameter name="Left"/>
  1490. <template-type-parameter name="Right"/>
  1491. </template>
  1492. <parameter name="left">
  1493. <paramtype>Left const &amp;</paramtype>
  1494. </parameter>
  1495. <parameter name="right">
  1496. <paramtype>Right &amp;</paramtype>
  1497. </parameter>
  1498. </function>
  1499. <function name="operator%=">
  1500. <type><emphasis>unspecified</emphasis></type>
  1501. <template>
  1502. <template-type-parameter name="Left"/>
  1503. <template-type-parameter name="Right"/>
  1504. </template>
  1505. <parameter name="left">
  1506. <paramtype>Left const &amp;</paramtype>
  1507. </parameter>
  1508. <parameter name="right">
  1509. <paramtype>Right const &amp;</paramtype>
  1510. </parameter>
  1511. </function>
  1512. <function name="operator+=">
  1513. <type><emphasis>unspecified</emphasis></type>
  1514. <template>
  1515. <template-type-parameter name="Left"/>
  1516. <template-type-parameter name="Right"/>
  1517. </template>
  1518. <parameter name="left">
  1519. <paramtype>Left &amp;</paramtype>
  1520. </parameter>
  1521. <parameter name="right">
  1522. <paramtype>Right &amp;</paramtype>
  1523. </parameter>
  1524. </function>
  1525. <function name="operator+=">
  1526. <type><emphasis>unspecified</emphasis></type>
  1527. <template>
  1528. <template-type-parameter name="Left"/>
  1529. <template-type-parameter name="Right"/>
  1530. </template>
  1531. <parameter name="left">
  1532. <paramtype>Left &amp;</paramtype>
  1533. </parameter>
  1534. <parameter name="right">
  1535. <paramtype>Right const &amp;</paramtype>
  1536. </parameter>
  1537. </function>
  1538. <function name="operator+=">
  1539. <type><emphasis>unspecified</emphasis></type>
  1540. <template>
  1541. <template-type-parameter name="Left"/>
  1542. <template-type-parameter name="Right"/>
  1543. </template>
  1544. <parameter name="left">
  1545. <paramtype>Left const &amp;</paramtype>
  1546. </parameter>
  1547. <parameter name="right">
  1548. <paramtype>Right &amp;</paramtype>
  1549. </parameter>
  1550. </function>
  1551. <function name="operator+=">
  1552. <type><emphasis>unspecified</emphasis></type>
  1553. <template>
  1554. <template-type-parameter name="Left"/>
  1555. <template-type-parameter name="Right"/>
  1556. </template>
  1557. <parameter name="left">
  1558. <paramtype>Left const &amp;</paramtype>
  1559. </parameter>
  1560. <parameter name="right">
  1561. <paramtype>Right const &amp;</paramtype>
  1562. </parameter>
  1563. </function>
  1564. <function name="operator-=">
  1565. <type><emphasis>unspecified</emphasis></type>
  1566. <template>
  1567. <template-type-parameter name="Left"/>
  1568. <template-type-parameter name="Right"/>
  1569. </template>
  1570. <parameter name="left">
  1571. <paramtype>Left &amp;</paramtype>
  1572. </parameter>
  1573. <parameter name="right">
  1574. <paramtype>Right &amp;</paramtype>
  1575. </parameter>
  1576. </function>
  1577. <function name="operator-=">
  1578. <type><emphasis>unspecified</emphasis></type>
  1579. <template>
  1580. <template-type-parameter name="Left"/>
  1581. <template-type-parameter name="Right"/>
  1582. </template>
  1583. <parameter name="left">
  1584. <paramtype>Left &amp;</paramtype>
  1585. </parameter>
  1586. <parameter name="right">
  1587. <paramtype>Right const &amp;</paramtype>
  1588. </parameter>
  1589. </function>
  1590. <function name="operator-=">
  1591. <type><emphasis>unspecified</emphasis></type>
  1592. <template>
  1593. <template-type-parameter name="Left"/>
  1594. <template-type-parameter name="Right"/>
  1595. </template>
  1596. <parameter name="left">
  1597. <paramtype>Left const &amp;</paramtype>
  1598. </parameter>
  1599. <parameter name="right">
  1600. <paramtype>Right &amp;</paramtype>
  1601. </parameter>
  1602. </function>
  1603. <function name="operator-=">
  1604. <type><emphasis>unspecified</emphasis></type>
  1605. <template>
  1606. <template-type-parameter name="Left"/>
  1607. <template-type-parameter name="Right"/>
  1608. </template>
  1609. <parameter name="left">
  1610. <paramtype>Left const &amp;</paramtype>
  1611. </parameter>
  1612. <parameter name="right">
  1613. <paramtype>Right const &amp;</paramtype>
  1614. </parameter>
  1615. </function>
  1616. <function name="operator&amp;=">
  1617. <type><emphasis>unspecified</emphasis></type>
  1618. <template>
  1619. <template-type-parameter name="Left"/>
  1620. <template-type-parameter name="Right"/>
  1621. </template>
  1622. <parameter name="left">
  1623. <paramtype>Left &amp;</paramtype>
  1624. </parameter>
  1625. <parameter name="right">
  1626. <paramtype>Right &amp;</paramtype>
  1627. </parameter>
  1628. </function>
  1629. <function name="operator&amp;=">
  1630. <type><emphasis>unspecified</emphasis></type>
  1631. <template>
  1632. <template-type-parameter name="Left"/>
  1633. <template-type-parameter name="Right"/>
  1634. </template>
  1635. <parameter name="left">
  1636. <paramtype>Left &amp;</paramtype>
  1637. </parameter>
  1638. <parameter name="right">
  1639. <paramtype>Right const &amp;</paramtype>
  1640. </parameter>
  1641. </function>
  1642. <function name="operator&amp;=">
  1643. <type><emphasis>unspecified</emphasis></type>
  1644. <template>
  1645. <template-type-parameter name="Left"/>
  1646. <template-type-parameter name="Right"/>
  1647. </template>
  1648. <parameter name="left">
  1649. <paramtype>Left const &amp;</paramtype>
  1650. </parameter>
  1651. <parameter name="right">
  1652. <paramtype>Right &amp;</paramtype>
  1653. </parameter>
  1654. </function>
  1655. <function name="operator&amp;=">
  1656. <type><emphasis>unspecified</emphasis></type>
  1657. <template>
  1658. <template-type-parameter name="Left"/>
  1659. <template-type-parameter name="Right"/>
  1660. </template>
  1661. <parameter name="left">
  1662. <paramtype>Left const &amp;</paramtype>
  1663. </parameter>
  1664. <parameter name="right">
  1665. <paramtype>Right const &amp;</paramtype>
  1666. </parameter>
  1667. </function>
  1668. <function name="operator|=">
  1669. <type><emphasis>unspecified</emphasis></type>
  1670. <template>
  1671. <template-type-parameter name="Left"/>
  1672. <template-type-parameter name="Right"/>
  1673. </template>
  1674. <parameter name="left">
  1675. <paramtype>Left &amp;</paramtype>
  1676. </parameter>
  1677. <parameter name="right">
  1678. <paramtype>Right &amp;</paramtype>
  1679. </parameter>
  1680. </function>
  1681. <function name="operator|=">
  1682. <type><emphasis>unspecified</emphasis></type>
  1683. <template>
  1684. <template-type-parameter name="Left"/>
  1685. <template-type-parameter name="Right"/>
  1686. </template>
  1687. <parameter name="left">
  1688. <paramtype>Left &amp;</paramtype>
  1689. </parameter>
  1690. <parameter name="right">
  1691. <paramtype>Right const &amp;</paramtype>
  1692. </parameter>
  1693. </function>
  1694. <function name="operator|=">
  1695. <type><emphasis>unspecified</emphasis></type>
  1696. <template>
  1697. <template-type-parameter name="Left"/>
  1698. <template-type-parameter name="Right"/>
  1699. </template>
  1700. <parameter name="left">
  1701. <paramtype>Left const &amp;</paramtype>
  1702. </parameter>
  1703. <parameter name="right">
  1704. <paramtype>Right &amp;</paramtype>
  1705. </parameter>
  1706. </function>
  1707. <function name="operator|=">
  1708. <type><emphasis>unspecified</emphasis></type>
  1709. <template>
  1710. <template-type-parameter name="Left"/>
  1711. <template-type-parameter name="Right"/>
  1712. </template>
  1713. <parameter name="left">
  1714. <paramtype>Left const &amp;</paramtype>
  1715. </parameter>
  1716. <parameter name="right">
  1717. <paramtype>Right const &amp;</paramtype>
  1718. </parameter>
  1719. </function>
  1720. <function name="operator^=">
  1721. <type><emphasis>unspecified</emphasis></type>
  1722. <template>
  1723. <template-type-parameter name="Left"/>
  1724. <template-type-parameter name="Right"/>
  1725. </template>
  1726. <parameter name="left">
  1727. <paramtype>Left &amp;</paramtype>
  1728. </parameter>
  1729. <parameter name="right">
  1730. <paramtype>Right &amp;</paramtype>
  1731. </parameter>
  1732. </function>
  1733. <function name="operator^=">
  1734. <type><emphasis>unspecified</emphasis></type>
  1735. <template>
  1736. <template-type-parameter name="Left"/>
  1737. <template-type-parameter name="Right"/>
  1738. </template>
  1739. <parameter name="left">
  1740. <paramtype>Left &amp;</paramtype>
  1741. </parameter>
  1742. <parameter name="right">
  1743. <paramtype>Right const &amp;</paramtype>
  1744. </parameter>
  1745. </function>
  1746. <function name="operator^=">
  1747. <type><emphasis>unspecified</emphasis></type>
  1748. <template>
  1749. <template-type-parameter name="Left"/>
  1750. <template-type-parameter name="Right"/>
  1751. </template>
  1752. <parameter name="left">
  1753. <paramtype>Left const &amp;</paramtype>
  1754. </parameter>
  1755. <parameter name="right">
  1756. <paramtype>Right &amp;</paramtype>
  1757. </parameter>
  1758. </function>
  1759. <function name="operator^=">
  1760. <type><emphasis>unspecified</emphasis></type>
  1761. <template>
  1762. <template-type-parameter name="Left"/>
  1763. <template-type-parameter name="Right"/>
  1764. </template>
  1765. <parameter name="left">
  1766. <paramtype>Left const &amp;</paramtype>
  1767. </parameter>
  1768. <parameter name="right">
  1769. <paramtype>Right const &amp;</paramtype>
  1770. </parameter>
  1771. </function>
  1772. <function name="if_else">
  1773. <type>typename <classname>proto::result_of::make_expr</classname>&lt;
  1774. <classname>proto::tag::if_else_</classname>,
  1775. <classname>proto::deduce_domain</classname>,
  1776. A0 const &amp;,
  1777. A1 const &amp;,
  1778. A2 const &amp;
  1779. &gt;::type const</type>
  1780. <template>
  1781. <template-type-parameter name="A0"/>
  1782. <template-type-parameter name="A1"/>
  1783. <template-type-parameter name="A2"/>
  1784. </template>
  1785. <parameter name="a0">
  1786. <paramtype>A0 const &amp;</paramtype>
  1787. </parameter>
  1788. <parameter name="a1">
  1789. <paramtype>A1 const &amp;</paramtype>
  1790. </parameter>
  1791. <parameter name="a2">
  1792. <paramtype>A2 const &amp;</paramtype>
  1793. </parameter>
  1794. </function>
  1795. </namespace>
  1796. </namespace>
  1797. <macro name="BOOST_PROTO_DEFINE_OPERATORS" kind="functionlike">
  1798. <macro-parameter name="Trait"/>
  1799. <macro-parameter name="Domain"/>
  1800. <purpose>Defines a complete set of expression template-building operator overloads for use
  1801. with non-Proto terminal types.</purpose>
  1802. <description>
  1803. <para>
  1804. With <computeroutput>BOOST_PROTO_DEFINE_OPERATORS()</computeroutput>, it is possible to
  1805. non-intrusively adapt an existing (non-Proto) type to be a Proto terminal.
  1806. </para>
  1807. <para>
  1808. <computeroutput>Trait</computeroutput> is the name of a unary Boolean metafunction that returns
  1809. true for any types you would like to treat as Proto terminals.
  1810. </para>
  1811. <para>
  1812. <computeroutput>Domain</computeroutput> is the name of the Proto domain associated with
  1813. these new Proto terminals. You may use
  1814. <computeroutput><classname alt="boost::proto::default_domain">proto::default_domain</classname></computeroutput>
  1815. for the <computeroutput>Domain</computeroutput> if you do not wish to associate these terminals
  1816. with any domain.
  1817. </para>
  1818. <para>
  1819. <emphasis role="bold">Example:</emphasis>
  1820. <programlisting>namespace My {
  1821. // A non-Proto terminal type
  1822. struct S {};
  1823. // A unary Boolean metafunction that returns true for type S
  1824. template&lt;typename T&gt; struct IsS : mpl::false_ {};
  1825. template&lt;&gt; struct IsS&lt;S&gt; : mpl::true_ {};
  1826. // Make S a Proto terminal non-intrusively by defining the
  1827. // appropriate operator overloads. This should be in the same
  1828. // namespace as S so that these overloads can be found by
  1829. // argument-dependent lookup
  1830. <macroname>BOOST_PROTO_DEFINE_OPERATORS</macroname>(IsS, proto::default_domain)
  1831. }
  1832. int main() {
  1833. My::S s1, s2;
  1834. // OK, this builds a Proto expression template:
  1835. s1 + s2;
  1836. }</programlisting>
  1837. </para>
  1838. </description>
  1839. </macro>
  1840. </header>