I thought we discussed this a while ago. In my opinion virtual methods should not be static. Francoise ' -----Original Message----- From: owner-sv-ec@eda.org [mailto:owner-sv-ec@eda.org] On Behalf Of Gordon Vreugdenhil Sent: Thursday, June 14, 2007 1:15 PM To: SV_EC List Subject: [sv-ec] How does static lifetime interact with virtual methods? If one has: class C; virtual task static t(int x); endtask endclass class D extends C; task static t(int x); endtask endclass How should one think about "this" and "x" in terms of the two bodies of "t"? Is "this" implicitly automatic? Is there one "x" or two? Should simultaneous calls to "t" in C be able to interfere with the value of "x" in the "t" in D? More to the point -- is this even a sensible thing to permit in the LRM? It seems to me that from first principles, the concept of "virtual" and "static lifetime" are at least somewhat contradictory. We could clarify the rules, but is it really worthwhile? I'd be happy to make it illegal to have static lifetime for a virtual method. It is also arguable (though less strange) that "static lifetime" should really only be permitted for class static routines. You do run into some oddness with "this" if that isn't the case -- i.e. is "this" really a static lifetime implicit formal or is it automatic and the rest static? I'd be happy to restrict static lifetime to static methods as well. I'll enter a mantis item on this and will add a proposal if people are in favor of one or both of the restrictions. Gord. -- -------------------------------------------------------------------- Gordon Vreugdenhil 503-685-0808 Model Technology (Mentor Graphics) gordonv@model.com -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Thu Jun 14 11:20:41 2007
This archive was generated by hypermail 2.1.8 : Thu Jun 14 2007 - 11:21:02 PDT