diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/stdapis/boost/pending/lowest_bit.hpp --- /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 +#include "boost/pending/integer_log2.hpp" + + +namespace boost { + + template + 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( x - ( x & (x-1) ) ); + + } + + +} + + +#endif // include guard