|  | 
| 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) | 
|  | 
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