On 12/22/2011 7:13 PM, Jonathan M Davis wrote:
Okay. Assuming that I'm going to try and make TimeZone opaque within SysTime,
does that require a pointer rather than a reference? And I assume then that
the time zone stuff would need to be in a separate module than SysTime. That
being the case, how would SysTime be able to use the time zone without
importing that module? Does the C++ solution of forward declaring it like
class TimeZone;
work in D?
It'll still put a reference to TimeZone in the ModuleInfo.
I suggest:
void* tz;
The functions that don't need it, just ignore it. The functions that do need
TimeZone, do:
class TimeZone { void foo() { ... } }
if (!tz)
tz = initTimeZone();
auto t = cast(TimeZone)tz;
t.foo(); // call members of TimeZone
Put the functions that do need TimeZone in a separate module from the ones that
don't.