On Mon, 19 Dec 2011 13:09:42 -0500, Walter Bright
<newshou...@digitalmars.com> wrote:
On 12/19/2011 7:17 AM, Steven Schveighoffer wrote:
On Fri, 16 Dec 2011 17:55:47 -0500, Walter Bright
<newshou...@digitalmars.com>
wrote:
For example, in std.datetime there's "final class Clock". It inherits
nothing,
and nothing can be derived from it. The comments for it say it is
merely a
namespace. It should be a struct.
Although I don't disagree with you that it should be a struct and not a
class,
does it have anything in its vtbl anyways if it's final?
Yes. The pointers to Object's functions, and a pointer to the TypeInfo
for that class.
Well pointers to Object's functions shouldn't add any bloat. The TypeInfo
may, but that shouldn't pull in any real code from the module, right?
I'm just trying to
understand what gets pulled in when you import a module with static
ctors...
Write some trivial code snippets, compile them, and take a look at the
object file with obj2asm.
I'll rephrase -- I'm trying to understand what's *supposed* to happen :)
Trusting that the compiler is doing it right isn't always correct. Though
it probably is in this case.
-Steve