# Algorithms_in_C++: ciphers/uint256_t.hpp File Reference

Loading...
Searching...
No Matches
uint256_t.hpp File Reference
`#include <string>`
`#include <utility>`
`#include "uint128_t.hpp"`
Include dependency graph for uint256_t.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes

struct | std::is_integral< uint256_t >
struct | std::is_arithmetic< uint256_t >
struct | std::is_unsigned< uint256_t >
class | uint256_t
| class for 256-bit unsigned integer More...

## Macros

#define | CIPHERS_UINT256_T_HPP_
| for `std::pair` library More...

## Functions

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
uint256_t | operator+ (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
uint256_t | operator- (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
uint256_t | operator* (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
uint256_t | operator/ (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
uint256_t | operator% (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
uint256_t | operator& (const T &p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
uint256_t | operator| (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
uint256_t | operator^ (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
bool | operator&& (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
bool | operator|| (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
bool | operator== (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
bool | operator!= (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
bool | operator< (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
bool | operator<= (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
bool | operator> (const T p, const uint256_t &q)
template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>
bool | operator>= (const T p, const uint256_t &q)

## Detailed Description

Implementation of 256-bit unsigned integers.

Note
  The implementation can be flagged as not completed. This header is used with enough operations to demonstrate the usage of ECDH (Elliptic Curve Diffie-Hellman) Key exchange.

Author
  Ashish Daulatabad

## Macro Definition Documentation

## CIPHERS_UINT256_T_HPP_

#define CIPHERS_UINT256_T_HPP_

for `std::pair` library

for `std::string` for uint128_t integer

## Function Documentation

## operator!=()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

bool operator!= | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) != q;
}
uint256_t
class for 256-bit unsigned integer
Definition: uint256_t.hpp:33

## operator%()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

uint256_t operator% | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) % q;
}

## operator&()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

uint256_t operator& | ( | const T & | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) & q;
}

## operator&&()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

bool operator&& | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) && q;
}

## operator*()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

uint256_t operator* | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) * q;
}

## operator+()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

uint256_t operator+ | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) + q;
}

## operator-()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

uint256_t operator- | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return (uint256_t(p) - q);
}

## operator/()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

uint256_t operator/ | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) / q;
}

## operator<()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

bool operator< | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) < q;
}

## operator<=()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

bool operator<= | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) <= q;
}

## operator==()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

bool operator== | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) == q;
}

## operator>()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

bool operator> | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) > q;
}

## operator>=()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

bool operator>= | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) >= q;
}

## operator^()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

uint256_t operator^ | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) ^ q;
}

## operator|()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

uint256_t operator| | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) | q;
}

## operator||()

template<typename T , typename = typename std::enable_if< std::is_integral<T>::value, T>::type>

bool operator|| | ( | const T | p,
|  | const uint256_t & | q
| ) |  |

inline

{
return uint256_t(p) || q;
}