synopsis.qbk 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. [/
  2. Copyright 2010 Neil Groves
  3. Distributed under the Boost Software License, Version 1.0.
  4. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. /]
  6. [section:synopsis Synopsis]
  7. ``
  8. namespace boost
  9. {
  10. //
  11. // Single Pass Range metafunctions
  12. //
  13. template< class T, class Enabler=void >
  14. struct range_iterator;
  15. template< class T >
  16. struct range_value;
  17. template< class T >
  18. struct range_reference;
  19. template< class T >
  20. struct range_pointer;
  21. template< class T >
  22. struct range_category;
  23. //
  24. // Forward Range metafunctions
  25. //
  26. template< class T >
  27. struct range_difference;
  28. //
  29. // Bidirectional Range metafunctions
  30. //
  31. template< class T >
  32. struct range_reverse_iterator;
  33. //
  34. // Single Pass Range functions
  35. //
  36. template< class T >
  37. typename range_iterator<T>::type
  38. begin( T& r );
  39. template< class T >
  40. typename range_iterator<const T>::type
  41. begin( const T& r );
  42. template< class T >
  43. typename range_iterator<T>::type
  44. end( T& r );
  45. template< class T >
  46. typename range_iterator<const T>::type
  47. end( const T& r );
  48. template< class T >
  49. bool
  50. empty( const T& r );
  51. //
  52. // Forward Range functions
  53. //
  54. template< class T >
  55. typename range_difference<T>::type
  56. distance( const T& r );
  57. template< class T >
  58. typename range_size<T>::type
  59. size( const T& r );
  60. //
  61. // Bidirectional Range functions
  62. //
  63. template< class T >
  64. typename range_reverse_iterator<T>::type
  65. rbegin( T& r );
  66. template< class T >
  67. typename range_reverse_iterator<const T>::type
  68. rbegin( const T& r );
  69. template< class T >
  70. typename range_reverse_iterator<T>::type
  71. rend( T& r );
  72. template< class T >
  73. typename range_reverse_iterator<const T>::type
  74. rend( const T& r );
  75. //
  76. // Special const Range functions
  77. //
  78. template< class T >
  79. typename range_iterator<const T>::type
  80. const_begin( const T& r );
  81. template< class T >
  82. typename range_iterator<const T>::type
  83. const_end( const T& r );
  84. template< class T >
  85. typename range_reverse_iterator<const T>::type
  86. const_rbegin( const T& r );
  87. template< class T >
  88. typename range_reverse_iterator<const T>::type
  89. const_rend( const T& r );
  90. //
  91. // String utilities
  92. //
  93. template< class T >
  94. iterator_range< ... see below ... >
  95. as_literal( T& r );
  96. template< class T >
  97. iterator_range< ... see below ... >
  98. as_literal( const T& r );
  99. template< class T >
  100. iterator_range< typename range_iterator<T>::type >
  101. as_array( T& r );
  102. template< class T >
  103. iterator_range< typename range_iterator<const T>::type >
  104. as_array( const T& r );
  105. } // namespace 'boost'
  106. ``
  107. [endsect]