$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r65514 - sandbox/variadic_templates/boost/composite_storage/layout
From: cppljevans_at_[hidden]
Date: 2010-09-21 08:41:50
Author: cppljevans
Date: 2010-09-21 08:41:40 EDT (Tue, 21 Sep 2010)
New Revision: 65514
URL: http://svn.boost.org/trac/boost/changeset/65514
Log:
Added #include for mpl/next.hpp in operators_*.hpp.
Used type_traits/is_empty in layout_of to minimize size_of value.
Text files modified: 
   sandbox/variadic_templates/boost/composite_storage/layout/layout_of.hpp                |    10 ++++++++++                              
   sandbox/variadic_templates/boost/composite_storage/layout/operators_all_of_aligned.hpp |     1 +                                       
   sandbox/variadic_templates/boost/composite_storage/layout/operators_one_of_maybe.hpp   |     1 +                                       
   3 files changed, 12 insertions(+), 0 deletions(-)
Modified: sandbox/variadic_templates/boost/composite_storage/layout/layout_of.hpp
==============================================================================
--- sandbox/variadic_templates/boost/composite_storage/layout/layout_of.hpp	(original)
+++ sandbox/variadic_templates/boost/composite_storage/layout/layout_of.hpp	2010-09-21 08:41:40 EDT (Tue, 21 Sep 2010)
@@ -9,6 +9,9 @@
 //  warranty, and with no claim as to its suitability for any purpose.
 //
 #include <boost/composite_storage/buffers/char_buf.hpp>
+#include <boost/mpl/integral_c.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/type_traits/is_empty.hpp>
 
 namespace boost
 {
@@ -57,12 +60,19 @@
   >
   struct
 size_of
+: mpl::if_
+  < is_empty<T>
+  , mpl::integral_c<std::size_t,0>
+  , mpl::integral_c<std::size_t,sizeof(T)>
+  >::type
 {
+  #if 0
         static
       std::size_t const
     value
     =sizeof(T)
     ;
+  #endif
 };
 
 struct components_aligned_yes
Modified: sandbox/variadic_templates/boost/composite_storage/layout/operators_all_of_aligned.hpp
==============================================================================
--- sandbox/variadic_templates/boost/composite_storage/layout/operators_all_of_aligned.hpp	(original)
+++ sandbox/variadic_templates/boost/composite_storage/layout/operators_all_of_aligned.hpp	2010-09-21 08:41:40 EDT (Tue, 21 Sep 2010)
@@ -15,6 +15,7 @@
 #include <boost/composite_storage/alignment/compose.hpp>
 #include <boost/composite_storage/alignment/aligned_offset.hpp>
 #include <boost/composite_storage/special_components.hpp>
+#include <boost/mpl/next.hpp>
 
 namespace boost
 {
Modified: sandbox/variadic_templates/boost/composite_storage/layout/operators_one_of_maybe.hpp
==============================================================================
--- sandbox/variadic_templates/boost/composite_storage/layout/operators_one_of_maybe.hpp	(original)
+++ sandbox/variadic_templates/boost/composite_storage/layout/operators_one_of_maybe.hpp	2010-09-21 08:41:40 EDT (Tue, 21 Sep 2010)
@@ -14,6 +14,7 @@
 #include <boost/composite_storage/buffers/rval_ref_buf.hpp>
 #include <boost/composite_storage/alignment/compose.hpp>
 #include <boost/composite_storage/special_components.hpp>
+#include <boost/mpl/next.hpp>
 
 namespace boost
 {