// (C) Copyright Gennadiy Rozental 2005. // 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: char_parameter.hpp,v $ // // Version : $Revision: 1.1 $ // // Description : defines model of parameter with single char name // *************************************************************************** #ifndef BOOST_RT_CLA_CHAR_PARAMETER_HPP_062604GER #define BOOST_RT_CLA_CHAR_PARAMETER_HPP_062604GER // Boost.Runtime.Parameter #include #include #include #include namespace boost { namespace BOOST_RT_PARAM_NAMESPACE { namespace cla { // ************************************************************************** // // ************** char_name_policy ************** // // ************************************************************************** // class char_name_policy : public basic_naming_policy { public: // Constructor char_name_policy(); BOOST_RT_PARAM_UNNEEDED_VIRTUAL ~char_name_policy() {} // policy interface virtual bool conflict_with( identification_policy const& ) const; // Accept modifier template void accept_modifier( Modifier const& m ) { basic_naming_policy::accept_modifier( m ); BOOST_RT_PARAM_VALIDATE_LOGIC( m_name.size() <= 1, "Invalid parameter name " << m_name ); } }; // ************************************************************************** // // ************** runtime::cla::char_parameter ************** // // ************************************************************************** // template class char_parameter_t : public basic_parameter { typedef basic_parameter base; public: // Constructors explicit char_parameter_t( char_type name ) : base( cstring( &name, 1 ) ) {} }; //____________________________________________________________________________// template inline shared_ptr > char_parameter( char_type name ) { return shared_ptr >( new char_parameter_t( name ) ); } //____________________________________________________________________________// inline shared_ptr > char_parameter( char_type name ) { return shared_ptr >( new char_parameter_t( name ) ); } //____________________________________________________________________________// } // namespace cla } // namespace BOOST_RT_PARAM_NAMESPACE } // namespace boost #ifndef BOOST_RT_PARAM_OFFLINE # define BOOST_RT_PARAM_INLINE inline # include #endif // ************************************************************************** // // Revision History: // // $Log: char_parameter.hpp,v $ // Revision 1.1 2005/04/12 06:42:43 rogeeff // Runtime.Param library initial commit // // ************************************************************************** // #endif // BOOST_RT_CLA_CHAR_PARAMETER_HPP_062604GER