diff --git a/example/doc_custom_deque.cpp b/example/doc_custom_deque.cpp index deaff02..1aca7d5 100644 --- a/example/doc_custom_deque.cpp +++ b/example/doc_custom_deque.cpp @@ -48,28 +48,43 @@ int main () assert(exception_thrown == true); //-------------------------------------------- -// 'block_size' option +// 'block_size/segment_size' option //-------------------------------------------- //This option specifies the desired block size for deque typedef deque_options< block_size<128u> >::type block_128_option_t; - //This deque will allocate blocks of 128 elements + //segment_size is an alias for block_size (an alias for block_size) + typedef deque_options< segment_size<128u> >::type segment_128_option_t; + + //This deque will allocate blocks of 128 elements typedef deque block_128_deque_t; assert(block_128_deque_t::get_block_size() == 128u); + //This deque will allocate segments of 128 elements (an alias for block_size) + typedef deque segment_128_deque_t; + assert(segment_128_deque_t::get_block_size() == 128u); + //-------------------------------------------- -// 'block_bytes' option +// 'block_bytes/segment_bytes' option //-------------------------------------------- //This option specifies the maximum block size for deque //in bytes typedef deque_options< block_bytes<1024u> >::type block_1024_bytes_option_t; + //This option specifies the maximum segment size for deque + //in bytes (an alias for block_bytes) + typedef deque_options< segment_bytes<1024u> >::type segment_1024_bytes_option_t; + //This deque will allocate blocks of 1024 bytes typedef deque block_1024_bytes_deque_t; assert(block_1024_bytes_deque_t::get_block_size() == 1024u/sizeof(int)); + //This deque will allocate blocks of 1024 bytes (an alias for block_bytes) + typedef deque segment_1024_bytes_deque_t; + assert(segment_1024_bytes_deque_t::get_block_size() == 1024u/sizeof(int)); + return 0; } //] diff --git a/include/boost/container/deque.hpp b/include/boost/container/deque.hpp index 5fb7dc7..47683ee 100644 --- a/include/boost/container/deque.hpp +++ b/include/boost/container/deque.hpp @@ -80,6 +80,7 @@ class deque : public deque_impl #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED using base_type::get_block_size; + using base_type::get_segment_size; using base_type::is_reservable; #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED @@ -322,6 +323,23 @@ class deque : public deque_impl #endif #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED + + //! Effects: Returns the number of continguous elements per segment/block. + //! Same as get_block_size(). + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + static size_type get_segment_size() BOOST_NOEXCEPT_OR_NOTHROW; + + //! Effects: Returns the number of continguous elements per segment/block. + //! Same as get_segment_size(). + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + static size_type get_block_size() BOOST_NOEXCEPT_OR_NOTHROW; + //! Effects: Assigns the n copies of val to *this. //! //! Throws: If memory allocation throws or T's copy constructor throws.