epoc32/include/stdapis/boost/pending/lowest_bit.hpp
branchSymbian2
changeset 2 2fe1408b6811
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/epoc32/include/stdapis/boost/pending/lowest_bit.hpp	Tue Mar 16 16:12:26 2010 +0000
@@ -0,0 +1,39 @@
+// -------------------------------------
+// lowest_bit.hpp
+//
+//           Position of the lowest bit 'on'
+//
+//       (C) Copyright Gennaro Prota 2003 - 2004.
+//
+// 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_LOWEST_BIT_HPP_GP_20030301
+#define BOOST_LOWEST_BIT_HPP_GP_20030301
+
+#include <cassert>
+#include "boost/pending/integer_log2.hpp"
+
+
+namespace boost {
+
+    template <typename T>
+    int lowest_bit(T x) {
+
+        assert(x >= 1); // PRE
+
+        // clear all bits on except the rightmost one,
+        // then calculate the logarithm base 2
+        //
+        return boost::integer_log2<T>( x - ( x & (x-1) ) );
+
+    }
+
+
+}
+
+
+#endif // include guard