Program Listing for File parameter.hpp

Return to documentation for file (/tmp/ws/src/ecl_core/ecl_utilities/include/ecl/utilities/parameter.hpp)

/*****************************************************************************
** Ifdefs
*****************************************************************************/

#ifndef ECL_UTILITIES_PARAMETER_HPP_
#define ECL_UTILITIES_PARAMETER_HPP_

/*****************************************************************************
** Namespaces
*****************************************************************************/

namespace ecl {

/*****************************************************************************
** Parameter
*****************************************************************************/
template <typename T> class Parameter {
    public:
        explicit Parameter() : parameter() {};
        Parameter(const T& value) : parameter(value){};

        virtual ~Parameter() {}

        /******************************************
        ** Operator =
        *******************************************/
        void operator =(const T& value) { parameter = value; }
        operator const T&() const { return parameter; }

        /******************************************
        ** Operator ()
        *******************************************/
        const T& operator ()() const { return parameter; }
        void operator ()( const T& value ) { parameter = value; }

    private:
        T parameter;
};

} // namespace ecl

#endif /*ECL_UTILITIES_PARAMETER_HPP_*/