$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r73268 - in branches/release/boost: . algorithm/string archive bimap config date_time date_time/posix_time detail dynamic_bitset filesystem function functional fusion fusion/container/list/detail geometry geometry/algorithms geometry/arithmetic geometry/core geometry/domains geometry/geometries geometry/iterators geometry/multi geometry/policies geometry/strategies geometry/util geometry/views gil graph icl integer interprocess intrusive io iostreams iterator math msm msm/back msm/front msm/front/detail msm/front/euml numeric/ublas pool program_options program_options/detail property_tree python random/detail range regex serialization signals signals2 spirit spirit/home spirit/home/karma spirit/home/support statechart system thread tr1 type_traits typeof unordered utility uuid variant wave xpressive
From: dnljms_at_[hidden]
Date: 2011-07-21 03:49:59
Author: danieljames
Date: 2011-07-21 03:49:59 EDT (Thu, 21 Jul 2011)
New Revision: 73268
URL: http://svn.boost.org/trac/boost/changeset/73268
Log:
Random: Merge constexpr integer_log2_impl.
Properties modified: 
   branches/release/boost/   (props changed)
   branches/release/boost/algorithm/string/   (props changed)
   branches/release/boost/archive/   (props changed)
   branches/release/boost/array.hpp   (props changed)
   branches/release/boost/bimap/   (props changed)
   branches/release/boost/concept_check.hpp   (props changed)
   branches/release/boost/config/   (props changed)
   branches/release/boost/config.hpp   (props changed)
   branches/release/boost/cregex.hpp   (props changed)
   branches/release/boost/cstdint.hpp   (props changed)
   branches/release/boost/date_time/c_time.hpp   (props changed)
   branches/release/boost/date_time/date_formatting.hpp   (props changed)
   branches/release/boost/date_time/filetime_functions.hpp   (props changed)
   branches/release/boost/date_time/gregorian_calendar.ipp   (props changed)
   branches/release/boost/date_time/posix_time/time_serialize.hpp   (props changed)
   branches/release/boost/date_time/strings_from_facet.hpp   (props changed)
   branches/release/boost/date_time/time_facet.hpp   (props changed)
   branches/release/boost/date_time/tz_db_base.hpp   (props changed)
   branches/release/boost/detail/   (props changed)
   branches/release/boost/detail/interlocked.hpp   (props changed)
   branches/release/boost/dynamic_bitset/dynamic_bitset.hpp   (props changed)
   branches/release/boost/filesystem/   (props changed)
   branches/release/boost/filesystem.hpp   (props changed)
   branches/release/boost/function/   (props changed)
   branches/release/boost/function/function_template.hpp   (props changed)
   branches/release/boost/functional/   (props changed)
   branches/release/boost/fusion/   (props changed)
   branches/release/boost/fusion/container/list/detail/build_cons.hpp   (props changed)
   branches/release/boost/geometry/   (props changed)
   branches/release/boost/geometry/algorithms/   (props changed)
   branches/release/boost/geometry/arithmetic/   (props changed)
   branches/release/boost/geometry/core/   (props changed)
   branches/release/boost/geometry/domains/   (props changed)
   branches/release/boost/geometry/geometries/   (props changed)
   branches/release/boost/geometry/geometry.hpp   (props changed)
   branches/release/boost/geometry/iterators/   (props changed)
   branches/release/boost/geometry/multi/   (props changed)
   branches/release/boost/geometry/policies/   (props changed)
   branches/release/boost/geometry/strategies/   (props changed)
   branches/release/boost/geometry/util/   (props changed)
   branches/release/boost/geometry/views/   (props changed)
   branches/release/boost/gil/   (props changed)
   branches/release/boost/graph/   (props changed)
   branches/release/boost/icl/   (props changed)
   branches/release/boost/integer/   (props changed)
   branches/release/boost/integer.hpp   (props changed)
   branches/release/boost/integer_fwd.hpp   (props changed)
   branches/release/boost/integer_traits.hpp   (props changed)
   branches/release/boost/interprocess/   (props changed)
   branches/release/boost/intrusive/   (props changed)
   branches/release/boost/io/   (props changed)
   branches/release/boost/iostreams/   (props changed)
   branches/release/boost/iterator/   (props changed)
   branches/release/boost/iterator/iterator_facade.hpp   (props changed)
   branches/release/boost/math/   (props changed)
   branches/release/boost/math_fwd.hpp   (props changed)
   branches/release/boost/msm/   (props changed)
   branches/release/boost/msm/active_state_switching_policies.hpp   (props changed)
   branches/release/boost/msm/back/   (props changed)
   branches/release/boost/msm/back/any_event.hpp   (props changed)
   branches/release/boost/msm/back/args.hpp   (props changed)
   branches/release/boost/msm/back/bind_helpers.hpp   (props changed)
   branches/release/boost/msm/back/common_types.hpp   (props changed)
   branches/release/boost/msm/back/copy_policies.hpp   (props changed)
   branches/release/boost/msm/back/default_compile_policy.hpp   (props changed)
   branches/release/boost/msm/back/dispatch_table.hpp   (props changed)
   branches/release/boost/msm/back/favor_compile_time.hpp   (props changed)
   branches/release/boost/msm/back/fold_to_list.hpp   (props changed)
   branches/release/boost/msm/back/history_policies.hpp   (props changed)
   branches/release/boost/msm/back/metafunctions.hpp   (props changed)
   branches/release/boost/msm/back/mpl_graph_fsm_check.hpp   (props changed)
   branches/release/boost/msm/back/no_fsm_check.hpp   (props changed)
   branches/release/boost/msm/back/queue_container_circular.hpp   (props changed)
   branches/release/boost/msm/back/queue_container_deque.hpp   (props changed)
   branches/release/boost/msm/back/state_machine.hpp   (props changed)
   branches/release/boost/msm/back/tools.hpp   (props changed)
   branches/release/boost/msm/common.hpp   (props changed)
   branches/release/boost/msm/front/   (props changed)
   branches/release/boost/msm/front/common_states.hpp   (props changed)
   branches/release/boost/msm/front/completion_event.hpp   (props changed)
   branches/release/boost/msm/front/detail/   (props changed)
   branches/release/boost/msm/front/detail/common_states.hpp   (props changed)
   branches/release/boost/msm/front/detail/row2_helper.hpp   (props changed)
   branches/release/boost/msm/front/euml/   (props changed)
   branches/release/boost/msm/front/euml/algorithm.hpp   (props changed)
   branches/release/boost/msm/front/euml/common.hpp   (props changed)
   branches/release/boost/msm/front/euml/container.hpp   (props changed)
   branches/release/boost/msm/front/euml/euml.hpp   (props changed)
   branches/release/boost/msm/front/euml/euml_typeof.hpp   (props changed)
   branches/release/boost/msm/front/euml/guard_grammar.hpp   (props changed)
   branches/release/boost/msm/front/euml/iteration.hpp   (props changed)
   branches/release/boost/msm/front/euml/operator.hpp   (props changed)
   branches/release/boost/msm/front/euml/phoenix_placeholders.hpp   (props changed)
   branches/release/boost/msm/front/euml/querying.hpp   (props changed)
   branches/release/boost/msm/front/euml/state_grammar.hpp   (props changed)
   branches/release/boost/msm/front/euml/stl.hpp   (props changed)
   branches/release/boost/msm/front/euml/stt_grammar.hpp   (props changed)
   branches/release/boost/msm/front/euml/transformation.hpp   (props changed)
   branches/release/boost/msm/front/functor_row.hpp   (props changed)
   branches/release/boost/msm/front/internal_row.hpp   (props changed)
   branches/release/boost/msm/front/row2.hpp   (props changed)
   branches/release/boost/msm/front/state_machine_def.hpp   (props changed)
   branches/release/boost/msm/front/states.hpp   (props changed)
   branches/release/boost/msm/msm_grammar.hpp   (props changed)
   branches/release/boost/msm/proto_config.hpp   (props changed)
   branches/release/boost/msm/row_tags.hpp   (props changed)
   branches/release/boost/numeric/ublas/   (props changed)
   branches/release/boost/numeric/ublas/functional.hpp   (props changed)
   branches/release/boost/pool/   (props changed)
   branches/release/boost/program_options/   (props changed)
   branches/release/boost/program_options/detail/parsers.hpp   (props changed)
   branches/release/boost/program_options/parsers.hpp   (props changed)
   branches/release/boost/property_tree/   (props changed)
   branches/release/boost/python/   (props changed)
   branches/release/boost/range/   (props changed)
   branches/release/boost/regex/   (props changed)
   branches/release/boost/regex.h   (props changed)
   branches/release/boost/regex.hpp   (props changed)
   branches/release/boost/regex_fwd.hpp   (props changed)
   branches/release/boost/serialization/   (props changed)
   branches/release/boost/signals/   (props changed)
   branches/release/boost/signals2/   (props changed)
   branches/release/boost/signals2.hpp   (props changed)
   branches/release/boost/spirit/   (props changed)
   branches/release/boost/spirit/home/   (props changed)
   branches/release/boost/spirit/home/karma/   (props changed)
   branches/release/boost/spirit/home/support/attributes.hpp   (props changed)
   branches/release/boost/statechart/   (props changed)
   branches/release/boost/static_assert.hpp   (props changed)
   branches/release/boost/system/   (props changed)
   branches/release/boost/thread/   (props changed)
   branches/release/boost/thread.hpp   (props changed)
   branches/release/boost/token_functions.hpp   (props changed)
   branches/release/boost/tr1/   (props changed)
   branches/release/boost/type_traits/   (props changed)
   branches/release/boost/typeof/message.hpp   (props changed)
   branches/release/boost/typeof/register_functions.hpp   (props changed)
   branches/release/boost/typeof/register_functions_iterate.hpp   (props changed)
   branches/release/boost/typeof/typeof.hpp   (props changed)
   branches/release/boost/typeof/unsupported.hpp   (props changed)
   branches/release/boost/unordered/   (props changed)
   branches/release/boost/utility/   (props changed)
   branches/release/boost/utility/value_init.hpp   (props changed)
   branches/release/boost/uuid/   (props changed)
   branches/release/boost/variant/   (props changed)
   branches/release/boost/wave/   (props changed)
   branches/release/boost/xpressive/   (props changed)
Text files modified: 
   branches/release/boost/random/detail/integer_log2.hpp |    11 +++++------                             
   1 files changed, 5 insertions(+), 6 deletions(-)
Modified: branches/release/boost/random/detail/integer_log2.hpp
==============================================================================
--- branches/release/boost/random/detail/integer_log2.hpp	(original)
+++ branches/release/boost/random/detail/integer_log2.hpp	2011-07-21 03:49:59 EDT (Thu, 21 Jul 2011)
@@ -22,9 +22,7 @@
 namespace random {
 namespace detail {
 
-// Daniel James: Disabled use of constexpr because integer_log2_impl is not a
-// valid constexpr.
-#if 0 && !defined(BOOST_NO_CONSTEXPR)
+#if !defined(BOOST_NO_CONSTEXPR)
 #define BOOST_RANDOM_DETAIL_CONSTEXPR constexpr
 #elif defined(BOOST_MSVC)
 #define BOOST_RANDOM_DETAIL_CONSTEXPR __forceinline
@@ -38,10 +36,11 @@
 struct integer_log2_impl
 {
     template<class T>
-    BOOST_RANDOM_DETAIL_CONSTEXPR static int apply(T t, int accum)
+    BOOST_RANDOM_DETAIL_CONSTEXPR static int apply(T t, int accum,
+            int update = 0)
     {
-        int update = ((t >> Shift) != 0) * Shift;
-        return integer_log2_impl<Shift / 2>::apply(t >> update, accum + update);
+        return update = ((t >> Shift) != 0) * Shift,
+            integer_log2_impl<Shift / 2>::apply(t >> update, accum + update);
     }
 };