// (C) Copyright Gennadiy Rozental 2005-2008. // 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: 54633 $ // // Description : generic custom parameter generator // *************************************************************************** #ifndef BOOST_RT_CLA_BASIC_PARAMETER_HPP_062604GER #define BOOST_RT_CLA_BASIC_PARAMETER_HPP_062604GER // Boost.Runtime.Parameter #include #include // Boost.Test #include // Boost #include namespace boost { namespace BOOST_RT_PARAM_NAMESPACE { namespace cla { // ************************************************************************** // // ************** runtime::cla::basic_parameter ************** // // ************************************************************************** // template class basic_parameter : private base_from_member, public typed_parameter { public: // Constructors explicit basic_parameter( cstring n ) : base_from_member() , typed_parameter( base_from_member::member ) { this->accept_modifier( name = n ); } // parameter properties modification template void accept_modifier( Modifier const& m ) { typed_parameter::accept_modifier( m ); base_from_member::member.accept_modifier( m ); } }; //____________________________________________________________________________// #define BOOST_RT_CLA_NAMED_PARAM_GENERATORS( param_type ) \ template \ inline shared_ptr > \ param_type( cstring name = cstring() ) \ { \ return shared_ptr >( new param_type ## _t( name ) ); \ } \ \ inline shared_ptr > \ param_type( cstring name = cstring() ) \ { \ return shared_ptr >( new param_type ## _t( name ) ); \ } \ /**/ //____________________________________________________________________________// } // namespace cla } // namespace BOOST_RT_PARAM_NAMESPACE } // namespace boost #endif // BOOST_RT_CLA_BASIC_PARAMETER_HPP_062604GER