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.
Comment #1 by robert.schadek — 2024-12-13T19:38:44Z