[antlr-interest] "finally" blocks

Paul J. Lucas pauljlucas at mac.com
Mon Jan 17 22:38:01 PST 2005


On Tue, 18 Jan 2005, Alan Gutierrez wrote:

> * Paul J. Lucas <pauljlucas at mac.com> [2005-01-18 01:13]:

> > 	I wasn't asking.  I think you're misquoting.  Terence was the
> > 	one who was asking.
> 
>     Yes. I know. And if Terrence was asking if reliance of
>     destructors is prevelent in C++, in leiu of finally, I'm saying,
>     the answer is yes.

	OK, if you knew, then you intentionally misquoted (for reasons
	that aren't clear).

> > 	The lone standard such wrapper is auto_ptr<T>.
> 
>     Boost has a number of such wrappers.

	I clearly said "standard": Boost isn't part of ISO C++.

>     I also consider the std::string, std::list, std::vector to be RAII
>     wappers.

	std::string is; std::list is, but only if T is an object that
	has a destructor.  If T is really MyObject*, then, although the
	list will be properly destroyed, all the MyObjects will be
	leaked.  Same with vector.

	In my own code, I've created variants of auto_ptr<T>, i.e.,
	various flavors of managed_ptr<T> that properly destroys the T
	object when the pointer to it gets destroyed.

	But I digress...

>     My mistake. I'll go back to saying, for C++, forget about it.

	And, IMHO, it's not such a bad thing.  A C++ programmer would
	never want to have a "finally" block in ANTLR anyway because a
	C++ programmer doesn't think about "finally" blocks at all
	since C++ doesn't have them.

	But a Java programmer wants/expects a "finally" block in ANTLR
	because Java has them.

	- Paul



More information about the antlr-interest mailing list