Server IP : 172.67.216.182 / Your IP : 172.71.81.159 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/mpl/ |
Upload File : |
#ifndef BOOST_MPL_FOR_EACH_HPP_INCLUDED #define BOOST_MPL_FOR_EACH_HPP_INCLUDED // Copyright Aleksey Gurtovoy 2000-2008 // // 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) // // See http://www.boost.org/libs/mpl for documentation. // $Id$ // $Date$ // $Revision$ #include <boost/mpl/is_sequence.hpp> #include <boost/mpl/begin_end.hpp> #include <boost/mpl/apply.hpp> #include <boost/mpl/bool.hpp> #include <boost/mpl/next_prior.hpp> #include <boost/mpl/deref.hpp> #include <boost/mpl/identity.hpp> #include <boost/mpl/assert.hpp> #include <boost/mpl/aux_/config/gpu.hpp> #include <boost/mpl/aux_/unwrap.hpp> #include <boost/type_traits/is_same.hpp> #include <boost/utility/value_init.hpp> namespace boost { namespace mpl { namespace aux { template< bool done = true > struct for_each_impl { template< typename Iterator , typename LastIterator , typename TransformFunc , typename F > BOOST_MPL_CFG_GPU_ENABLED static void execute( Iterator* , LastIterator* , TransformFunc* , F ) { } }; template<> struct for_each_impl<false> { template< typename Iterator , typename LastIterator , typename TransformFunc , typename F > BOOST_MPL_CFG_GPU_ENABLED static void execute( Iterator* , LastIterator* , TransformFunc* , F f ) { typedef typename deref<Iterator>::type item; typedef typename apply1<TransformFunc,item>::type arg; // dwa 2002/9/10 -- make sure not to invoke undefined behavior // when we pass arg. value_initialized<arg> x; aux::unwrap(f, 0)(boost::get(x)); typedef typename mpl::next<Iterator>::type iter; for_each_impl<boost::is_same<iter,LastIterator>::value> ::execute( static_cast<iter*>(0), static_cast<LastIterator*>(0), static_cast<TransformFunc*>(0), f); } }; } // namespace aux // agurt, 17/mar/02: pointer default parameters are necessary to workaround // MSVC 6.5 function template signature's mangling bug template< typename Sequence , typename TransformOp , typename F > BOOST_MPL_CFG_GPU_ENABLED inline void for_each(F f, Sequence* = 0, TransformOp* = 0) { BOOST_MPL_ASSERT(( is_sequence<Sequence> )); typedef typename begin<Sequence>::type first; typedef typename end<Sequence>::type last; aux::for_each_impl< boost::is_same<first,last>::value > ::execute(static_cast<first*>(0), static_cast<last*>(0), static_cast<TransformOp*>(0), f); } template< typename Sequence , typename F > BOOST_MPL_CFG_GPU_ENABLED inline void for_each(F f, Sequence* = 0) { // jfalcou: fully qualifying this call so it doesnt clash with phoenix::for_each // ons ome compilers -- done on 02/28/2011 boost::mpl::for_each<Sequence, identity<> >(f); } }} #endif // BOOST_MPL_FOR_EACH_HPP_INCLUDED