1234567891011121314151617181920212223242526 |
- /*-----------------------------------------------------------------------------+
- Author: Joachim Faulhaber
- Copyright (c) 2009-2009: Joachim Faulhaber
- +------------------------------------------------------------------------------+
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENCE.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
- +-----------------------------------------------------------------------------*/
- namespace mini // minimal implementations for example projects
- {
- // A meta implementation of an the logarithm function on integrals
- template <size_t Argument, size_t Base=2>
- struct log_{ enum { value = 1 + log_<Argument/Base, Base>::value }; };
- template <size_t Base>struct log_<1, Base>{ enum { value = 0 }; };
- template <size_t Base>struct log_<0, Base>{ enum { value = 0 }; };
- template <size_t Argument>
- struct log2_{ enum { value = log_<Argument, 2>::value }; };
- template <size_t Argument>
- struct power2_{ enum { value = 1 << Argument }; };
- } // namespace mini
|