Has the idea of function overloading via nogc been explored?

void func() @nogc
{
    // logic that does not use GC
}
void func()
{
    // logic that uses GC
}
void main(string[] args) // @nogc
{
    // if main is @nogc, then the @nogc version of func
    // will be called, otherwise, the GC version will be
    func();
}

This could be useful for the standard library to expose different implementations based on whether or not the application is using the GC.

Reply via email to