//  (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 : specific value handlers

// ***************************************************************************



#ifndef BOOST_RT_CLA_VALUE_HANDLER_HPP_062604GER

#define BOOST_RT_CLA_VALUE_HANDLER_HPP_062604GER



// Boost.Runtime.Parameter

#include <boost/test/utils/runtime/config.hpp>



#include <boost/test/utils/runtime/cla/fwd.hpp>



namespace boost {



namespace BOOST_RT_PARAM_NAMESPACE {



namespace cla {



namespace rt_cla_detail {



// ************************************************************************** //

// **************            runtime::cla::assigner            ************** //

// ************************************************************************** //



template<typename T>

class assigner {

public:

    // Constructor

    explicit    assigner( T& loc ) : m_target( loc )    {}



    // value handler implementation

    void        operator()( parameter const&, T& t )  { m_target = t; }



private:

    // Data members

    T&          m_target;

};



} // namespace rt_cla_detail



} // namespace cla



} // namespace BOOST_RT_PARAM_NAMESPACE



} // namespace boost



#endif // BOOST_RT_CLA_VALUE_HANDLER_HPP_062604GER

