On Saturday, 12 March 2022 at 13:12:25 UTC, vit wrote:
```d enum touch_T = __traits(hasMember, T, "touch"); ```
I think you meant build instead of touch? ```d struct Query { public const SharedPtr!Builder builder; } interface Builder { void build(ref Query query); } struct SharedPtr(T) { enum touch_T = __traits(hasMember, T, "build"); } import std.traits, std.stdio; void main() { Query q; q.builder.touch_T.writeln(" #build"); } // true #build ```