On Thursday, 26 October 2017 at 17:55:05 UTC, Mr. Jonse wrote:
when calling Clock.currTime() in a this() in a class. I have no idea why it is trying to do it at compile time and failing. I thought if ctfe couldn't compile it would do it at run time anyways? Seems like a bug.

I suspect you're trying to instantiate your class in a static context, which causes it to be constructed at compile time. For example:

====
class A
{
  this() {
    // Do sth. with datetime
  }
}

class B
{
  // This will construct A at compile time. This also
  // means a single A instance is shared between all
  // B instances. This is different from most langs!
  A a = new A;
}

// This will also construct at compile time.
A moduleScopedA = new A;
====

The solution is to new A in your class or module constructor.

Reply via email to