If you write this as:
```D
result ~= format(`case S.%s: return to!T("%s"%s); `, member, member, ['c', 'w', 'd'][ElementEncodingType!T.sizeof/2]
```
Then you won't allocate for `wstring` and `dstring` either. At no extra cost.