One Hat Cyber Team
Your IP :
216.73.216.180
Server IP :
162.240.179.46
Server :
Linux vps-14493116.nutrivittasaude.com.br 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
Server Software :
Apache
PHP Version :
8.2.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
include
/
boost
/
safe_numerics
/
View File Name :
native.hpp
#ifndef BOOST_SAFE_NUMERICS_NATIVE_HPP #define BOOST_SAFE_NUMERICS_NATIVE_HPP // Copyright (c) 2012 Robert Ramey // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #include <type_traits> #include <limits> // policy which creates results types and values equal to that of C++ promotions. // When used in conjunction with a desired exception policy, traps errors but // does not otherwise alter the results produced by the program using it. namespace boost { namespace safe_numerics { struct native { public: // arithmetic operators template<typename T, typename U> struct addition_result { using type = decltype( typename base_type<T>::type() + typename base_type<U>::type() ); }; template<typename T, typename U> struct subtraction_result { using type = decltype( typename base_type<T>::type() - typename base_type<U>::type() ); }; template<typename T, typename U> struct multiplication_result { using type = decltype( typename base_type<T>::type() * typename base_type<U>::type() ); }; template<typename T, typename U> struct division_result { using type = decltype( typename base_type<T>::type() / typename base_type<U>::type() ); }; template<typename T, typename U> struct modulus_result { using type = decltype( typename base_type<T>::type() % typename base_type<U>::type() ); }; // note: comparison_result (<, >, ...) is special. // The return value is always a bool. The type returned here is // the intermediate type applied to make the values comparable. template<typename T, typename U> struct comparison_result { using type = decltype( typename base_type<T>::type() + typename base_type<U>::type() ); }; // shift operators template<typename T, typename U> struct left_shift_result { using type = decltype( typename base_type<T>::type() << typename base_type<U>::type() ); }; template<typename T, typename U> struct right_shift_result { using type = decltype( typename base_type<T>::type() >> typename base_type<U>::type() ); }; // bitwise operators template<typename T, typename U> struct bitwise_or_result { using type = decltype( typename base_type<T>::type() | typename base_type<U>::type() ); }; template<typename T, typename U> struct bitwise_and_result { using type = decltype( typename base_type<T>::type() & typename base_type<U>::type() ); }; template<typename T, typename U> struct bitwise_xor_result { using type = decltype( typename base_type<T>::type() ^ typename base_type<U>::type() ); }; }; } // safe_numerics } // boost #endif // BOOST_SAFE_NUMERICS_NATIVE_HPP