MyGUI 3.4.1
MyGUI_Bitwise.h
Go to the documentation of this file.
1/*
2 * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3 * Distributed under the MIT License
4 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5 */
6
7#ifndef MYGUI_BITWISE_H_
8#define MYGUI_BITWISE_H_
9
10#include "MyGUI_Prerequest.h"
11
12namespace MyGUI
13{
14
15 class Bitwise
16 {
17 public:
20 template<typename Type>
21 static inline Type firstPO2From(Type _value)
22 {
23 --_value;
24 _value |= _value >> 16;
25 _value |= _value >> 8;
26 _value |= _value >> 4;
27 _value |= _value >> 2;
28 _value |= _value >> 1;
29 ++_value;
30 return _value;
31 }
32
34 template<typename Type>
35 static inline bool isPO2(Type _value)
36 {
37 return (_value & (_value - 1)) == 0;
38 }
39
40 };
41
42} // namespace MyGUI
43
44#endif // MYGUI_BITWISE_H_
static bool isPO2(Type _value)
Definition: MyGUI_Bitwise.h:35
static Type firstPO2From(Type _value)
Definition: MyGUI_Bitwise.h:21