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 
12 namespace 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