[Issue 22711] New: Effect of template UDAs on instance members is undocumented
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Jan 28 20:54:01 UTC 2022
https://issues.dlang.org/show_bug.cgi?id=22711
Issue ID: 22711
Summary: Effect of template UDAs on instance members is
undocumented
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: dlang.org
Assignee: nobody at puremagic.com
Reporter: snarwin+bugzilla at gmail.com
When a UDA is attached to a template declaration, and that template is
instantiated, the UDA is automatically attached to each of that template
instance's direct members:
---
@("uda") template Example(T)
{
struct S { int x; }
int n;
void fun() {};
}
import std.traits: hasUDA;
static assert(hasUDA!(Example!int.S, "uda"));
static assert(hasUDA!(Example!int.n, "uda"));
static assert(hasUDA!(Example!int.fun, "uda"));
// does not apply to members of members
static assert(!hasUDA!(Example!int.S.x, "uda"));
---
However, this behavior is not documented in the language spec.
--
More information about the Digitalmars-d-bugs
mailing list