Skip to content

Commit 0a21448

Browse files
committed
Fix Options documentation issue with Doxygen
1 parent 2774b3c commit 0a21448

File tree

1 file changed

+30
-20
lines changed

1 file changed

+30
-20
lines changed

include/boost/container/options.hpp

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,6 @@ struct hash_opt
124124

125125
typedef hash_opt<false, false, false, false> hash_assoc_defaults;
126126

127-
#endif //!defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
128-
129127
//!This option setter specifies if nodes also store the hash value
130128
//!so that search and rehashing for hash-expensive types is improved.
131129
//!This option might degrade performance for easy to hash types (like integers)
@@ -178,6 +176,8 @@ using hash_assoc_options_t = typename boost::container::hash_assoc_options<Optio
178176

179177
#endif
180178

179+
#endif //!defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
180+
181181
////////////////////////////////////////////////////////////////
182182
//
183183
//
@@ -212,9 +212,7 @@ struct default_if_zero<0u, DefaultN>
212212
BOOST_STATIC_CONSTEXPR std::size_t value = DefaultN;
213213
};
214214

215-
216-
217-
#endif
215+
#endif //!defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
218216

219217
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
220218

@@ -246,7 +244,7 @@ class default_next_capacity;
246244

247245
typedef vector_opt<void, void> vector_null_opt;
248246

249-
#else //!defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
247+
#else
250248

251249
//!This growth factor argument specifies that the container should increase its
252250
//!capacity a 50% when existing capacity is exhausted.
@@ -262,20 +260,30 @@ struct growth_factor_100{};
262260

263261
#endif //!defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
264262

265-
//!This option setter specifies the growth factor strategy of the underlying vector.
263+
//!This option setter specifies the growth factor strategy of the
264+
//!underlying vector.
265+
//!
266+
//!\tparam GrowthFactor The function object that implements the growth factor
267+
//!
268+
//! The GrowthFactor function object must offer the following interface:
269+
//!
270+
//!\code
271+
//!template<class SizeType>
272+
//!SizeType operator()(SizeType cur_cap, SizeType add_min_cap, SizeType max_cap) const;
273+
//!\endcode
274+
//!
275+
//!Where:
276+
//! * `cur_cap` is the current capacity
277+
//! * `add_min_cap` is the minimum additional capacity we want to achieve
278+
//! * `max_cap` is the maximum capacity that the allocator or other factors allow.
266279
//!
267-
//!\tparam GrowthFactor A function object that has the following signature:<br/><br/>
268-
//!`template<class SizeType>`<br/>
269-
//!`SizeType operator()(SizeType cur_cap, SizeType add_min_cap, SizeType max_cap) const;`.<br/><br/>
270-
//!`cur_cap` is the current capacity, `add_min_cap` is the minimum additional capacity
271-
//!we want to achieve and `max_cap` is the maximum capacity that the allocator or other
272-
//!factors allow. The implementation should return a value between `cur_cap` + `add_min_cap`
273-
//!and `max_cap`. `cur_cap` + `add_min_cap` is guaranteed not to overflow/wraparound,
274-
//! but the implementation should handle wraparound produced by the growth factor.
280+
//!The implementation should return a value between `cur_cap + add_min_cap`
281+
//!and `max_cap`. The implementation should handle the potential wraparound produced
282+
//!by the growth factor and always succeed with a correct value.
275283
//!
276284
//!Predefined growth factors that can be passed as arguments to this option are:
277-
//!\c boost::container::growth_factor_50
278-
//!\c boost::container::growth_factor_60
285+
//!\c boost::container::growth_factor_50,
286+
//!\c boost::container::growth_factor_60 and
279287
//!\c boost::container::growth_factor_100
280288
//!
281289
//!If this option is not specified, a default will be used by the container.
@@ -630,7 +638,8 @@ typedef deque_opt<0u, 0u, void, false> deque_null_opt;
630638

631639
//! Helper metafunction to combine options into a single type to be used
632640
//! by \c boost::container::deque.
633-
//! Supported options are: \c boost::container::block_bytes and \c boost::container::block_size
641+
//! Supported options are: \c boost::container::block_bytes, \c boost::container::block_size,
642+
//! \c boost::container::stored_size and \c boost::container::reservable
634643
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) || defined(BOOST_CONTAINER_VARIADIC_TEMPLATES)
635644
template<class ...Options>
636645
#else
@@ -682,8 +691,9 @@ BOOST_INTRUSIVE_OPTION_CONSTANT(block_size, std::size_t, BlockSize, block_size)
682691

683692
//!This option specifies if the container has reserve/capacity-like features
684693
//!
685-
//!For some containers (like deque) this value changes the internal representation
686-
//!so that memory for elements can be allocated in advance to improve performance.
694+
//!For some containers (like deque) this option might change the internal representation or
695+
//!behavior so that memory for elements can be allocated in advance in
696+
//!order to improve performance.
687697
//!
688698
//!\tparam Reservable An boolean value.
689699
BOOST_INTRUSIVE_OPTION_CONSTANT(reservable, bool, Reservable, reservable)

0 commit comments

Comments
 (0)