FreeNOS
lib
libstd
BitOperations.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2015 Niek Linnenbank
3
*
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation, either version 3 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#ifndef __BIT_OPERATIONS_H
19
#define __BIT_OPERATIONS_H
20
29
template
<
class
T>
inline
T
operator~
(T a) {
return
(T)~(int)a; }
30
template
<
class
T>
inline
T
operator|
(T a, T b) {
return
(T)((int)a | (
int
)b); }
31
template
<
class
T>
inline
T
operator&
(T a, T b) {
return
(T)((int)a & (
int
)b); }
32
template
<
class
T>
inline
T
operator^
(T a, T b) {
return
(T)((int)a ^ (
int
)b); }
33
template
<
class
T>
inline
T&
operator|=
(T& a, T b) {
return
(T&)((
int
&)a |= (
int
)b); }
34
template
<
class
T>
inline
T&
operator&=
(T& a, T b) {
return
(T&)((
int
&)a &= (
int
)b); }
35
template
<
class
T>
inline
T&
operator^=
(T& a, T b) {
return
(T&)((
int
&)a ^= (
int
)b); }
36
42
#endif
/* __BIT_OPERATIONS_H */
operator^
T operator^(T a, T b)
Definition:
BitOperations.h:32
operator^=
T & operator^=(T &a, T b)
Definition:
BitOperations.h:35
operator~
T operator~(T a)
Definition:
BitOperations.h:29
operator|
T operator|(T a, T b)
Definition:
BitOperations.h:30
operator&
T operator&(T a, T b)
Definition:
BitOperations.h:31
operator&=
T & operator&=(T &a, T b)
Definition:
BitOperations.h:34
operator|=
T & operator|=(T &a, T b)
Definition:
BitOperations.h:33
Generated by
1.8.17