[Issue 24878] New: Forward referencing issue

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Nov 25 06:11:36 UTC 2024


https://issues.dlang.org/show_bug.cgi?id=24878

          Issue ID: 24878
           Summary: Forward referencing issue
           Product: D
           Version: D2
          Hardware: All
               URL: http://dlang.org/
                OS: All
            Status: NEW
          Severity: normal
          Priority: P3
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: turkeyman at gmail.com

struct Container(T)
{
    // T.sizeof/alignof causes circular reference!
    enum AllocAlignment = T.sizeof;

    T* ptr;
}

struct Test
{
    Container!Test test;
}

error : struct `main.Test` no size because of forward reference
error : template instance `main.Container!(Test)` error instantiating


Checking T.sizeof causes a forward referencing error; but it doesn't need to
evaluate that enum to determine the size of `Container!T` which has a know-able
size with no T knowledge... evaluation should be deferred.

--


More information about the Digitalmars-d-bugs mailing list