Boost logo

Boost :

From: Jason Hise (chaos_at_[hidden])
Date: 2005-01-06 21:05:48


The following is a class to emulate C# properties using C++:
www.ezequal.com/chaos/libs/property.h
example code:

template < typename T >
class Coord
{
private:
    T x, y;

    T get_X ( ) const
    {
        return x;
    }

    T get_Y ( ) const
    {
        return y;
    }

    void set_X ( const T & value )
    {
        x = value;
    }

    void set_Y ( const T & value )
    {
        y = value;
    }

public:
    utils::GetSetProperty < Coord < T >, T > X;
    utils::GetSetProperty < Coord < T >, T > Y;

    Coord ( ) :
        X ( this, get_X, set_X ),
        Y ( this, get_X, set_X )
    {
    }

    Coord ( T X, T Y ) :
        X ( this, get_X, set_X ),
        Y ( this, get_X, set_X )
    {
        this->X = X;
        this->Y = Y;
    }
};

The compiler appears to optimize out any calls between the property's
use and the get/set functions. Any thoughts or suggestions for improvement?

-Jason


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk