diff options
| author | Tobias Markmann <tm@ayena.de> | 2014-10-19 20:22:58 (GMT) | 
|---|---|---|
| committer | Tobias Markmann <tm@ayena.de> | 2014-10-20 13:49:33 (GMT) | 
| commit | 6b22dfcf59474dd016a0355a3102a1dd3692d92c (patch) | |
| tree | 2b1fd33be433a91e81fee84fdc2bf1b52575d934 /3rdParty/Boost/src/boost/pending/integer_log2.hpp | |
| parent | 38b0cb785fea8eae5e48fae56440695fdfd10ee1 (diff) | |
| download | swift-contrib-6b22dfcf59474dd016a0355a3102a1dd3692d92c.zip swift-contrib-6b22dfcf59474dd016a0355a3102a1dd3692d92c.tar.bz2 | |
Update Boost in 3rdParty to version 1.56.0.
This updates Boost in our 3rdParty directory to version 1.56.0.
Updated our update.sh script to stop on error.
Changed error reporting in SwiftTools/CrashReporter.cpp to SWIFT_LOG due to
missing include of <iostream> with newer Boost.
Change-Id: I4b35c77de951333979a524097f35f5f83d325edc
Diffstat (limited to '3rdParty/Boost/src/boost/pending/integer_log2.hpp')
| -rw-r--r-- | 3rdParty/Boost/src/boost/pending/integer_log2.hpp | 113 | 
1 files changed, 5 insertions, 108 deletions
| diff --git a/3rdParty/Boost/src/boost/pending/integer_log2.hpp b/3rdParty/Boost/src/boost/pending/integer_log2.hpp index f4bc846..023ec7a 100644 --- a/3rdParty/Boost/src/boost/pending/integer_log2.hpp +++ b/3rdParty/Boost/src/boost/pending/integer_log2.hpp @@ -1,112 +1,9 @@ -// ----------------------------------------------------------- -// integer_log2.hpp -// -//   Gives the integer part of the logarithm, in base 2, of a -// given number. Behavior is undefined if the argument is <= 0. -// -//         Copyright (c) 2003-2004, 2008 Gennaro Prota -// -// Distributed under the Boost Software License, Version 1.0. -//    (See accompanying file LICENSE_1_0.txt or copy at -//          http://www.boost.org/LICENSE_1_0.txt) -// -// ----------------------------------------------------------- +#ifndef BOOST_PENDING_INTEGER_LOG2_HPP +#define BOOST_PENDING_INTEGER_LOG2_HPP -#ifndef BOOST_INTEGER_LOG2_HPP_GP_20030301 -#define BOOST_INTEGER_LOG2_HPP_GP_20030301 +// The header file at this path is deprecated; +// use boost/integer/integer_log2.hpp instead. -#include <assert.h> -#ifdef __BORLANDC__ -#include <climits> -#endif -#include "boost/limits.hpp" -#include "boost/config.hpp" - - -namespace boost { - namespace detail { - -  template <typename T> -  int integer_log2_impl(T x, int n) { - -      int result = 0; - -      while (x != 1) { - -          const T t = static_cast<T>(x >> n); -          if (t) { -              result += n; -              x = t; -          } -          n /= 2; - -      } - -      return result; -  } - - - -  // helper to find the maximum power of two -  // less than p (more involved than necessary, -  // to avoid PTS) -  // -  template <int p, int n> -  struct max_pow2_less { - -      enum { c = 2*n < p }; - -      BOOST_STATIC_CONSTANT(int, value = -          c ? (max_pow2_less< c*p, 2*c*n>::value) : n); - -  }; - -  template <> -  struct max_pow2_less<0, 0> { +#include <boost/integer/integer_log2.hpp> -      BOOST_STATIC_CONSTANT(int, value = 0); -  }; - -  // this template is here just for Borland :( -  // we could simply rely on numeric_limits but sometimes -  // Borland tries to use numeric_limits<const T>, because -  // of its usual const-related problems in argument deduction -  // - gps -  template <typename T> -  struct width { - -#ifdef __BORLANDC__ -      BOOST_STATIC_CONSTANT(int, value = sizeof(T) * CHAR_BIT); -#else -      BOOST_STATIC_CONSTANT(int, value = (std::numeric_limits<T>::digits));  #endif - -  }; - - } // detail - - - // --------- - // integer_log2 - // --------------- - // - template <typename T> - int integer_log2(T x) { - -     assert(x > 0); - -     const int n = detail::max_pow2_less< -                     detail::width<T> :: value, 4 -                   > :: value; - -     return detail::integer_log2_impl(x, n); - - } - - - -} - - - -#endif // include guard | 
 Swift
 Swift