File tree Expand file tree Collapse file tree 1 file changed +27
-4
lines changed Expand file tree Collapse file tree 1 file changed +27
-4
lines changed Original file line number Diff line number Diff line change @@ -630,12 +630,35 @@ writeln(__traits(identifier, var)); // "var"
630
630
631
631
$(H2 $(GNAME getAliasThis))
632
632
633
- $(P Takes one argument, a symbol of aggregate type.
634
- If the given aggregate type has $(D alias this), returns a list of
635
- $(D alias this) names, by a tuple of $(D string)s.
636
- Otherwise returns an empty tuple.
633
+ $(P Takes one argument, a type. If the type has `alias this` declarations,
634
+ returns a sequence of the names (as `string`s) of the members used in
635
+ those declarations. Otherwise returns an empty sequence.
637
636
)
638
637
638
+ $(SPEC_RUNNABLE_EXAMPLE_COMPILE
639
+ ---
640
+ alias AliasSeq(T...) = T;
641
+
642
+ struct S1
643
+ {
644
+ string var;
645
+ alias var this;
646
+ }
647
+ static assert(__traits(getAliasThis, S1) == AliasSeq!("var"));
648
+ static assert(__traits(getAliasThis, int).length == 0);
649
+
650
+ pragma(msg, __traits(getAliasThis, S1));
651
+ pragma(msg, __traits(getAliasThis, int));
652
+ ---
653
+ )
654
+
655
+ Prints:
656
+
657
+ $(CONSOLE
658
+ tuple("var")
659
+ tuple()
660
+ )
661
+
639
662
$(SECTION2 $(GNAME getAttributes),
640
663
$(P
641
664
Takes one argument, a symbol. Returns a tuple of all attached user-defined attributes.
You can’t perform that action at this time.
0 commit comments