Boost logo

Boost Users :

From: Ovanes Markarian (om_boost_at_[hidden])
Date: 2006-07-10 11:57:20


Hello all,

I have one issue, which I would like to discuss here.

In my current project is a need to implement an optional type, this type is considered to be lazy.
I am wondering why C++ or Boost do not offer this possibility.

These are just some thoughts which are really not perfect, but an opinion and interest would be
highly appreciated:

template<class Type, class Allocator /*some other policies like threading etc.*/>
class lazy_type
{

        public:
                //constructors must be considered which
                //should it be possible to copy this type etc.

                //destuctor, must be considered how the object should be deallocated in regards of owning and
non-owning policies

                operator bool()const
                {
                        return ptr_!=NULL;
                }

                Type* operator->()
                {
                        if(!ptr_)
                        {
                                //allocate ptr_ and instantiate it using an allocator or another policy type
                                ...
                        }
                        return ptr_;
                }

        private:
                Type* ptr_;
};

This type can be a mix of reference counted ptr (shared_ptr) and allocator on request. All
comments and thoughts are HIGHLY appreciated.

With Kind Regards,

Ovanes Markarian


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net