x
Yes
No
Do you want to visit DriveHQ English website?
首页
产品服务
价格
免费试用
下载客户端
关于我们
云文件服务
|
云备份服务
|
FTP服务
|
企业邮箱服务
|
网站托管
|
客户端软件
云文件服务
云备份服务
FTP服务
企业级邮箱服务
网站托管
客户端软件
parameter.hpp - Hosted on DriveHQ Cloud IT Platform
返回上层目录
上传
下载
共享
发布
新建文件夹
新建文件
复制
剪切
删除
粘贴
评论
升级服务
路径: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\test\utils\runtime\cla\parameter.hpp
旋转
特效
属性
历史版本
// (C) Copyright Gennadiy Rozental 2005-2007. // Use, modification, and distribution are subject to 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/test for the library home page. // // File : $RCSfile$ // // Version : $Revision: 43798 $ // // Description : defines model of formal parameter // *************************************************************************** #ifndef BOOST_RT_CLA_PARAMETER_HPP_062604GER #define BOOST_RT_CLA_PARAMETER_HPP_062604GER // Boost.Runtime.Parameter #include
#include
#include
#include
#include
#include
#include
#include
// Boost.Test #include
namespace boost { namespace BOOST_RT_PARAM_NAMESPACE { namespace cla { // ************************************************************************** // // ************** runtime::cla::parameter ************** // // ************************************************************************** // class parameter : public BOOST_RT_PARAM_NAMESPACE::parameter { public: parameter( identification_policy& ID, argument_factory& F ) : p_optional( false ) , p_multiplicable( false ) , p_optional_value( false ) , m_id_policy( ID ) , m_arg_factory( F ) {} // Destructor virtual ~parameter() {} unit_test::readwrite_property
p_optional; unit_test::readwrite_property
p_multiplicable; unit_test::readwrite_property
p_optional_value; unit_test::readwrite_property
p_description; // parameter properties modification template
void accept_modifier( Modifier const& m ) { if( m.has( optional_m ) ) p_optional.value = true; if( m.has( required_m ) ) p_optional.value = false; if( m.has( multiplicable_m ) ) p_multiplicable.value = true; if( m.has( optional_value_m ) ) p_optional_value.value = true; nfp::optionally_assign( p_description.value, m, description ); } // access methods bool has_argument() const { return m_actual_argument; } argument const& actual_argument() const { return *m_actual_argument; } argument_ptr actual_argument() { return m_actual_argument; } // identification interface bool responds_to( cstring name ) const { return m_id_policy.responds_to( name ); } bool conflict_with( parameter const& p ) const { return id_2_report() == p.id_2_report() && !id_2_report().is_empty() || m_id_policy.conflict_with( p.m_id_policy ) || p.m_id_policy.conflict_with( m_id_policy ); } cstring id_2_report() const { return m_id_policy.id_2_report(); } void usage_info( format_stream& fs ) const { m_id_policy.usage_info( fs ); if( p_optional_value ) fs << BOOST_RT_PARAM_LITERAL( '[' ); m_arg_factory.argument_usage_info( fs ); if( p_optional_value ) fs << BOOST_RT_PARAM_LITERAL( ']' ); } // argument match/produce based on input bool matching( argv_traverser& tr, bool primary ) const { return m_id_policy.matching( *this, tr, primary ); } // argument production based on different source void produce_argument( argv_traverser& tr ) { m_id_policy.matching( *this, tr, true ); // !! could we save this position somehow m_actual_argument = m_arg_factory.produce_using( *this, tr ); } void produce_argument( parser const& p ) { m_actual_argument = m_arg_factory.produce_using( *this, p ); } private: //Data members identification_policy& m_id_policy; argument_factory& m_arg_factory; argument_ptr m_actual_argument; }; //____________________________________________________________________________// template
inline shared_ptr
operator-( shared_ptr
p, Modifier const& m ) { p->accept_modifier( m ); return p; } //____________________________________________________________________________// } // namespace cla } // namespace BOOST_RT_PARAM_NAMESPACE } // namespace boost #endif // BOOST_RT_CLA_PARAMETER_HPP_062604GER
parameter.hpp
网页地址
文件地址
上一页
20/30
下一页
下载
( 5 KB )
Comments
Total ratings:
0
Average rating:
无评论
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.