Re: Smart Pointers and Microsoft Foundation Classes
- From: "Roger Rabbit" <roger@xxxxxxxxxx>
- Date: Tue, 19 Feb 2008 18:16:20 -0800
I cleaned it up more, been tired and and forgot I was using managed code, it now compiles with no errors
template <class T>
ref class LockProxy {
public:
LockProxy(T* pObj) : pointee (pObj) { lock l(this); }
~LockProxy() {
lock l(this);
delete pointee;
}
T* operator->() { return pointee; }
T* operator&() { return pointee&; }
LockProxy operator++() {
lock l(this); // lock on an increment
return pointee++;
}
LockProxy operator--() {
lock l(this); // lock on an decrement
return pointee--;
}
bool operator==(LockProxy(T)) {
return this==pointee;
}
bool operator<(LockProxy(T)) {
return this<pointee;
}
ostream& operator<<(ostream& os) { os << LockProxy.pointee; }
private:
T* pointee;
};
"Doug Harrison [MVP]" <dsh@xxxxxxxx> wrote in message news:k28mr3he6h148ev9ogvtkcg2a7kdvafrog@xxxxxxxxxx
On Tue, 19 Feb 2008 10:19:41 -0800, "Roger Rabbit" <roger@xxxxxxxxxxx>
wrote:
Consider this, when I write win_main(...)I create a handle to my instance
that is running. I could use the pointer to determine if I am running a
second instance or not. I could for example see that I am already running,
so what not spawn a new tab in the document window.
Sure, you could write a class to manage that. I wouldn't call it a "smart
pointer", though, because that's really stretching the meaning of the term.
In C++, the term is used to describe a class that solves some of the
problems that come with raw pointers, such as the need to delete them at
some point.
For example a multi document interface text editor would create an abstract
Document and derive TextDocument and RichTextDocument classes. That seems
pretty basic, but its more tricky when a new tab surfaces. Ownership becomes
important which is why I started pondering smart pointers in the first
place.
Ownership is always important. Smart pointers can help you implement the
ownership semantics you require.
--
Doug Harrison
Visual C++ MVP
- References:
- Re: Smart Pointers and Microsoft Foundation Classes
- From: Joseph M . Newcomer
- Re: Smart Pointers and Microsoft Foundation Classes
- From: Giovanni Dicanio
- Re: Smart Pointers and Microsoft Foundation Classes
- From: Giovanni Dicanio
- Re: Smart Pointers and Microsoft Foundation Classes
- From: Joseph M . Newcomer
- Re: Smart Pointers and Microsoft Foundation Classes
- From: Doug Harrison [MVP]
- Re: Smart Pointers and Microsoft Foundation Classes
- From: Roger Rabbit
- Re: Smart Pointers and Microsoft Foundation Classes
- From: Doug Harrison [MVP]
- Re: Smart Pointers and Microsoft Foundation Classes
- Prev by Date: Re: Worker thread in VC++ 6
- Next by Date: Re: Worker thread in VC++ 6
- Previous by thread: Re: Smart Pointers and Microsoft Foundation Classes
- Next by thread: Re: Smart Pointers and Microsoft Foundation Classes
- Index(es):
Relevant Pages
|