Server IP : 104.21.38.3 / Your IP : 162.158.106.191 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/boost/boost_1_59_0/boost/accumulators/numeric/ |
Upload File : |
/////////////////////////////////////////////////////////////////////////////// /// \file functional_fwd.hpp /// // Copyright 2005 Eric Niebler. 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) #ifndef BOOST_NUMERIC_FUNCTIONAL_FWD_HPP_EAN_08_12_2005 #define BOOST_NUMERIC_FUNCTIONAL_FWD_HPP_EAN_08_12_2005 #include <boost/mpl/if.hpp> #include <boost/mpl/placeholders.hpp> #include <boost/utility/enable_if.hpp> #include <boost/type_traits/is_same.hpp> #include <boost/type_traits/is_const.hpp> namespace boost { namespace numeric { // For using directives -- this namespace may be re-opened elsewhere namespace operators {} namespace op { using mpl::_; using mpl::_1; using mpl::_2; } namespace functional { using namespace operators; template<typename T> struct tag { typedef void type; }; template<typename T> struct tag<T const> : tag<T> {}; template<typename T> struct tag<T volatile> : tag<T> {}; template<typename T> struct tag<T const volatile> : tag<T> {}; template<typename T> struct static_; template<typename A0, typename A1> struct are_integral; } /// INTERNAL ONLY /// #define BOOST_NUMERIC_FUNCTIONAL_DECLARE_UNARY_OP(Name, Op) \ namespace functional \ { \ template<typename Arg, typename EnableIf = void> \ struct Name ## _base; \ template<typename Arg, typename ArgTag = typename tag<Arg>::type> \ struct Name; \ } \ namespace op \ { \ struct Name; \ } \ namespace \ { \ extern op::Name const &Name; \ } /// INTERNAL ONLY /// #define BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(Name) \ namespace functional \ { \ template<typename Left, typename Right, typename EnableIf = void> \ struct result_of_ ## Name; \ template<typename Left, typename Right, typename EnableIf = void> \ struct Name ## _base; \ template< \ typename Left \ , typename Right \ , typename LeftTag = typename tag<Left>::type \ , typename RightTag = typename tag<Right>::type \ > \ struct Name; \ } \ namespace op \ { \ struct Name; \ } \ namespace \ { \ extern op::Name const &Name; \ } BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(plus) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(minus) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(multiplies) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(divides) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(modulus) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(greater) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(greater_equal) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(less) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(less_equal) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(equal_to) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(not_equal_to) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(assign) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(plus_assign) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(minus_assign) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(multiplies_assign) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(divides_assign) BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP(modulus_assign) BOOST_NUMERIC_FUNCTIONAL_DECLARE_UNARY_OP(unary_plus, +) BOOST_NUMERIC_FUNCTIONAL_DECLARE_UNARY_OP(unary_minus, -) BOOST_NUMERIC_FUNCTIONAL_DECLARE_UNARY_OP(complement, ~) BOOST_NUMERIC_FUNCTIONAL_DECLARE_UNARY_OP(logical_not, !) #undef BOOST_NUMERIC_FUNCTIONAL_DECLARE_UNARY_OP #undef BOOST_NUMERIC_FUNCTIONAL_DECLARE_BINARY_OP namespace functional { template<typename To, typename From, typename EnableIf = void> struct promote_base; template<typename Left, typename Right, typename EnableIf = void> struct min_assign_base; template<typename Left, typename Right, typename EnableIf = void> struct max_assign_base; template<typename Left, typename Right, typename EnableIf = void> struct fdiv_base; template<typename Arg, typename EnableIf = void> struct as_min_base; template<typename Arg, typename EnableIf = void> struct as_max_base; template<typename Arg, typename EnableIf = void> struct as_zero_base; template<typename Arg, typename EnableIf = void> struct as_one_base; template<typename To, typename From, typename ToTag = typename tag<To>::type, typename FromTag = typename tag<From>::type> struct promote; template<typename Left, typename Right, typename LeftTag = typename tag<Left>::type, typename RightTag = typename tag<Right>::type> struct min_assign; template<typename Left, typename Right, typename LeftTag = typename tag<Left>::type, typename RightTag = typename tag<Right>::type> struct max_assign; template<typename Left, typename Right, typename LeftTag = typename tag<Left>::type, typename RightTag = typename tag<Right>::type> struct fdiv; template<typename Arg, typename Tag = typename tag<Arg>::type> struct as_min; template<typename Arg, typename Tag = typename tag<Arg>::type> struct as_max; template<typename Arg, typename Tag = typename tag<Arg>::type> struct as_zero; template<typename Arg, typename Tag = typename tag<Arg>::type> struct as_one; } namespace op { template<typename To> struct promote; struct min_assign; struct max_assign; struct fdiv; struct as_min; struct as_max; struct as_zero; struct as_one; } namespace { extern op::min_assign const &min_assign; extern op::max_assign const &max_assign; extern op::fdiv const &fdiv; extern op::as_min const &as_min; extern op::as_max const &as_max; extern op::as_zero const &as_zero; extern op::as_one const &as_one; } template<typename To, typename From> typename lazy_disable_if<is_const<From>, mpl::if_<is_same<To, From>, To &, To> >::type promote(From &from); template<typename To, typename From> typename mpl::if_<is_same<To const, From const>, To const &, To const>::type promote(From const &from); template<typename T> struct default_; template<typename T> struct one; template<typename T> struct zero; template<typename T> struct one_or_default; template<typename T> struct zero_or_default; }} // namespace boost::numeric #endif