omw  0.2.1-beta
Modules | Functions
Language Support

Modules

 Type Support
 

Functions

void omw::shiftLeftAssign (int8_t &value, unsigned int n)
 
void omw::shiftLeftAssign (int16_t &value, unsigned int n)
 
void omw::shiftLeftAssign (int32_t &value, unsigned int n)
 
void omw::shiftLeftAssign (int64_t &value, unsigned int n)
 
void omw::shiftLeftAssign (uint8_t &value, unsigned int n)
 
void omw::shiftLeftAssign (uint16_t &value, unsigned int n)
 
void omw::shiftLeftAssign (uint32_t &value, unsigned int n)
 
void omw::shiftLeftAssign (uint64_t &value, unsigned int n)
 
void omw::shiftRightAssign (int8_t &value, unsigned int n)
 
void omw::shiftRightAssign (int16_t &value, unsigned int n)
 
void omw::shiftRightAssign (int32_t &value, unsigned int n)
 
void omw::shiftRightAssign (int64_t &value, unsigned int n)
 
void omw::shiftRightAssign (uint8_t &value, unsigned int n)
 
void omw::shiftRightAssign (uint16_t &value, unsigned int n)
 
void omw::shiftRightAssign (uint32_t &value, unsigned int n)
 
void omw::shiftRightAssign (uint64_t &value, unsigned int n)
 
int8_t omw::shiftLeft (int8_t value, unsigned int n)
 
int16_t omw::shiftLeft (int16_t value, unsigned int n)
 
int32_t omw::shiftLeft (int32_t value, unsigned int n)
 
int64_t omw::shiftLeft (int64_t value, unsigned int n)
 
uint8_t omw::shiftLeft (uint8_t value, unsigned int n)
 
uint16_t omw::shiftLeft (uint16_t value, unsigned int n)
 
uint32_t omw::shiftLeft (uint32_t value, unsigned int n)
 
uint64_t omw::shiftLeft (uint64_t value, unsigned int n)
 
int8_t omw::shiftRight (int8_t value, unsigned int n)
 
int16_t omw::shiftRight (int16_t value, unsigned int n)
 
int32_t omw::shiftRight (int32_t value, unsigned int n)
 
int64_t omw::shiftRight (int64_t value, unsigned int n)
 
uint8_t omw::shiftRight (uint8_t value, unsigned int n)
 
uint16_t omw::shiftRight (uint16_t value, unsigned int n)
 
uint32_t omw::shiftRight (uint32_t value, unsigned int n)
 
uint64_t omw::shiftRight (uint64_t value, unsigned int n)
 

Detailed Description

#include <omw/utility.h>

Classes and functions that interact closely with the language.

Bitwise Shift Operators

Until C++20 the left shift of negative signed values is undefined and the right shift of negative signed values is implementation-defined. The functions omw::shiftLeft(), omw::shiftRight(), omw::shiftLeftAssign(), omw::shiftRightAssign() and the shift operators of omw::int128_t and omw::uint128_t implement C++20 compliant shift operations.

If the number of shifts to be performed is greater than or equal to the number of bits of the values type, the result is 0 (or -1 if the operation was right shift of a signed type and the value was negative before the operation).

See also Bitwise shift operators at cppreference.com.

Function Documentation

◆ shiftLeft()

int32_t omw::shiftLeft ( int32_t  value,
unsigned int  n 
)

◆ shiftLeftAssign()

void omw::shiftLeftAssign ( int32_t &  value,
unsigned int  n 
)

◆ shiftRight()

int32_t omw::shiftRight ( int32_t  value,
unsigned int  n 
)

◆ shiftRightAssign()

void omw::shiftRightAssign ( int32_t &  value,
unsigned int  n 
)