pop_front.xml 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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/functional/fusion/pop_front.hpp">
  9. <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::pop_front</classname></computeroutput>.</para>
  10. <namespace name="boost">
  11. <namespace name="proto">
  12. <namespace name="functional">
  13. <!-- proto::functional::pop_front -->
  14. <struct name="pop_front">
  15. <purpose>A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the
  16. <computeroutput>fusion::pop_front()</computeroutput> algorithm on its argument.</purpose>
  17. <description>
  18. <para>
  19. A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the
  20. <computeroutput>fusion::pop_front()</computeroutput> algorithm on its argument. This is
  21. useful for defining a <conceptname>CallableTransform</conceptname> such as
  22. <computeroutput>pop_front(_)</computeroutput>, which removes the first child from a Proto
  23. expression node. Such a transform might be used as the first argument to the
  24. <computeroutput><classname alt="proto::fold">proto::fold&lt;&gt;</classname></computeroutput>
  25. transform; that is, fold all but the first child.
  26. </para>
  27. </description>
  28. <inherit>
  29. <type><classname>proto::callable</classname></type>
  30. </inherit>
  31. <struct-specialization name="result">
  32. <template>
  33. <template-type-parameter name="This"/>
  34. <template-type-parameter name="Seq"/>
  35. </template>
  36. <specialization>
  37. <template-arg>This(Seq)</template-arg>
  38. </specialization>
  39. <inherit>
  40. <type>result&lt; This(Seq const &amp;) &gt;</type>
  41. </inherit>
  42. </struct-specialization>
  43. <struct-specialization name="result">
  44. <template>
  45. <template-type-parameter name="This"/>
  46. <template-type-parameter name="Seq"/>
  47. </template>
  48. <specialization>
  49. <template-arg>This(Seq &amp;)</template-arg>
  50. </specialization>
  51. <inherit>
  52. <type>fusion::result_of::pop_front&lt; Seq &gt;</type>
  53. </inherit>
  54. </struct-specialization>
  55. <method-group name="public member functions">
  56. <method name="operator()" cv="const">
  57. <type>typename fusion::result_of::pop_front&lt; Seq &gt;::type</type>
  58. <template>
  59. <template-type-parameter name="Seq"/>
  60. </template>
  61. <parameter name="seq">
  62. <paramtype>Seq &amp;</paramtype>
  63. </parameter>
  64. <returns>
  65. <para><computeroutput>fusion::pop_front(seq)</computeroutput></para>
  66. </returns>
  67. </method>
  68. <method name="operator()" cv="const">
  69. <type>typename fusion::result_of::pop_front&lt; Seq const &gt;::type</type>
  70. <template>
  71. <template-type-parameter name="Seq"/>
  72. </template>
  73. <parameter name="seq">
  74. <paramtype>Seq const &amp;</paramtype>
  75. </parameter>
  76. <returns>
  77. <para><computeroutput>fusion::pop_front(seq)</computeroutput></para>
  78. </returns>
  79. </method>
  80. </method-group>
  81. </struct>
  82. </namespace>
  83. </namespace>
  84. </namespace>
  85. </header>