![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : 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_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/include/boost/proto/transform/ |
Upload File : |
/////////////////////////////////////////////////////////////////////////////// /// \file integral_c.hpp /// Contains definition of the integral_c transform and friends. // // Copyright 2011 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_PROTO_TRANSFORM_INTEGRAL_C_HPP_EAN_04_28_2011 #define BOOST_PROTO_TRANSFORM_INTEGRAL_C_HPP_EAN_04_28_2011 #include <boost/proto/proto_fwd.hpp> #include <boost/proto/transform/impl.hpp> namespace boost { namespace proto { /// \brief A PrimitiveTransform that returns a specified /// integral constant /// template<typename T, T I> struct integral_c : transform<integral_c<T, I> > { template<typename Expr, typename State, typename Data> struct impl : transform_impl<Expr, State, Data> { typedef T result_type; /// \return \c I /// \throw nothrow T operator()( typename impl::expr_param , typename impl::state_param , typename impl::data_param ) const { return I; } }; }; /// \brief A PrimitiveTransform that returns a specified /// char /// template<char I> struct char_ : integral_c<char, I> {}; /// \brief A PrimitiveTransform that returns a specified /// int /// template<int I> struct int_ : integral_c<int, I> {}; /// \brief A PrimitiveTransform that returns a specified /// long /// template<long I> struct long_ : integral_c<long, I> {}; /// \brief A PrimitiveTransform that returns a specified /// std::size_t /// template<std::size_t I> struct size_t : integral_c<std::size_t, I> {}; /// INTERNAL ONLY /// template<typename T, T I> struct is_callable<integral_c<T, I> > : mpl::true_ {}; /// INTERNAL ONLY /// template<char I> struct is_callable<char_<I> > : mpl::true_ {}; /// INTERNAL ONLY /// template<int I> struct is_callable<int_<I> > : mpl::true_ {}; /// INTERNAL ONLY /// template<long I> struct is_callable<long_<I> > : mpl::true_ {}; /// INTERNAL ONLY /// template<std::size_t I> struct is_callable<size_t<I> > : mpl::true_ {}; }} #endif