support vector clustering for vc++

源代码在线查看: if.hpp

软件大小: 4561 K
上传用户: nassdaq
关键词: clustering support vector for
下载地址: 免注册下载 普通下载 VIP

相关代码

				
				#ifndef BOOST_MPL_IF_HPP_INCLUDED
				#define BOOST_MPL_IF_HPP_INCLUDED
				
				// Copyright Aleksey Gurtovoy 2000-2004
				//
				// 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.
				
				// $Source: /cvsroot/boost/boost/boost/mpl/if.hpp,v $
				// $Date: 2004/09/07 08:51:31 $
				// $Revision: 1.25 $
				
				#include 
				#include 
				#include 
				#include 
				#include 
				#include 
				#include 
				
				namespace boost { namespace mpl {
				
				#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
				
				template<
				      bool C
				    , typename T1
				    , typename T2
				    >
				struct if_c
				{
				    typedef T1 type;
				};
				
				template<
				      typename T1
				    , typename T2
				    >
				struct if_c
				{
				    typedef T2 type;
				};
				
				// agurt, 05/sep/04: nondescriptive parameter names for the sake of DigitalMars
				// (and possibly MWCW < 8.0); see http://article.gmane.org/gmane.comp.lib.boost.devel/108959
				template<
				      typename BOOST_MPL_AUX_NA_PARAM(T1)
				    , typename BOOST_MPL_AUX_NA_PARAM(T2)
				    , typename BOOST_MPL_AUX_NA_PARAM(T3)
				    >
				struct if_
				{
				 private:
				    // agurt, 02/jan/03: two-step 'type' definition for the sake of aCC 
				    typedef if_c<
				#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS)
				          BOOST_MPL_AUX_VALUE_WKND(T1)::value
				#else
				          BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value)
				#endif
				        , T2
				        , T3
				        > almost_type_;
				 
				 public:
				    typedef typename almost_type_::type type;
				    
				    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(T1,T2,T3))
				};
				
				#else
				
				// no partial class template specialization
				
				namespace aux {
				
				template< bool C >
				struct if_impl
				{
				    template< typename T1, typename T2 > struct result_
				    {
				        typedef T1 type;
				    };
				};
				
				template
				struct if_impl
				{
				    template< typename T1, typename T2 > struct result_
				    { 
				        typedef T2 type;
				    };
				};
				
				} // namespace aux
				
				template<
				      bool C_
				    , typename T1
				    , typename T2
				    >
				struct if_c
				{
				    typedef typename aux::if_impl< C_ >
				        ::template result_::type type;
				};
				
				// (almost) copy & paste in order to save one more 
				// recursively nested template instantiation to user
				template<
				      typename BOOST_MPL_AUX_NA_PARAM(C_)
				    , typename BOOST_MPL_AUX_NA_PARAM(T1)
				    , typename BOOST_MPL_AUX_NA_PARAM(T2)
				    >
				struct if_
				{
				    enum { msvc_wknd_ = BOOST_MPL_AUX_MSVC_VALUE_WKND(C_)::value };
				
				    typedef typename aux::if_impl< BOOST_MPL_AUX_STATIC_CAST(bool, msvc_wknd_) >
				        ::template result_::type type;
				
				    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C_,T1,T2))
				};
				
				#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
				
				BOOST_MPL_AUX_NA_SPEC(3, if_)
				
				}}
				
				#endif // BOOST_MPL_IF_HPP_INCLUDED
							

相关资源