From a4ae4a21925d73db415f4cd7737812728304d4dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Wed, 1 Oct 2025 22:19:51 +0200 Subject: [PATCH] Add "stored_size" to the custom deque example --- example/doc_custom_deque.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/example/doc_custom_deque.cpp b/example/doc_custom_deque.cpp index 014193d..fbb6c9b 100644 --- a/example/doc_custom_deque.cpp +++ b/example/doc_custom_deque.cpp @@ -20,6 +20,29 @@ int main () { using namespace boost::container; + //This option specifies that a deque that will use "unsigned char" as + //the type to store capacity or size internally. + typedef deque_options< stored_size >::type size_option_t; + + //Size-optimized deque is smaller than the default one. + typedef deque, size_option_t > size_optimized_deque_t; + assert(( sizeof(size_optimized_deque_t) < sizeof(deque) )); + + //Requesting capacity for more elements than representable by "unsigned char" + //is an error in the size optimized deque. + bool exception_thrown = false; + /*<-*/ + #ifndef BOOST_NO_EXCEPTIONS + BOOST_CONTAINER_TRY{ size_optimized_deque_t v(256); } BOOST_CONTAINER_CATCH(...){ exception_thrown = true; } BOOST_CONTAINER_CATCH_END + #else + exception_thrown = true; + #endif //BOOST_NO_EXCEPTIONS + /*->*/ + //=try { size_optimized_deque_t v(256); } + //=catch(...){ exception_thrown = true; } + + assert(exception_thrown == true); + //This option specifies the desired block size for deque typedef deque_options< block_size<128u> >::type block_128_option_t;