digitalmars.D.bugs - [Issue 21468] New: Inscrutable template error when
- d-bugmail puremagic.com (46/46) Dec 10 2020 https://issues.dlang.org/show_bug.cgi?id=21468
https://issues.dlang.org/show_bug.cgi?id=21468 Issue ID: 21468 Summary: Inscrutable template error when core.stdcpp.vector of a struct with a core.stdcpp.vector field is referenced before the struct's definition Product: D Version: D2 Hardware: x86_64 OS: Windows Status: NEW Severity: normal Priority: P1 Component: druntime Assignee: nobody puremagic.com Reporter: n8sh.secondary hotmail.com Related discussion at https://forum.dlang.org/thread/efjydhujahujqjrvmnsk forum.dlang.org Fails with "dmd -m64" on Microsoft Windows: --- import core.stdcpp.vector: stdcpp_vector = vector; void foo(stdcpp_vector!(S)* s) {} struct S { stdcpp_vector!int a; } void main(){} --- main.d(7): Error: struct core.stdcpp.vector.vector(T, Alloc = allocator!T) recursive template expansion main.d(7): while looking for match for stdcpp_vector!(int, allocator!int) ......\src\druntime\import\core\stdcpp\vector.d(33): Error: template instance core.stdcpp.allocator.allocator!(S) error instantiating main.d(3): instantiated from here: stdcpp_vector!(S) Succeeds with "dmd -m64" on Microsoft Windows: --- import core.stdcpp.allocator: allocator; import core.stdcpp.vector: stdcpp_vector = vector; void foo(stdcpp_vector!(S, allocator!S)* s) {} struct S { stdcpp_vector!int a; } void main(){} --- --
Dec 10 2020