Sourcert/aApply.d
dg_t = int delegate(void* c);_aApplycd1(scope const(char)[]aa, dg_tdg);_aApplywd1(scope const(wchar)[]aa, dg_tdg);_aApplycw1(scope const(char)[]aa, dg_tdg);_aApplywc1(scope const(wchar)[]aa, dg_tdg);_aApplydc1(scope const(dchar)[]aa, dg_tdg);_aApplydw1(scope const(dchar)[]aa, dg_tdg);void main(){ string str; wtring wstr; dstring dstr;foreach (dchar c; str) {}// _aApplycd1foreach (wchar c; dstr) {}// _aApplydw1foreach (i,wchar c; str) {}// _aApplycw2foreach (wchar w; wstr) {}// no conversion}
const(char)[]aa | input string |
dg_tdg | foreach body transformed into a delegate, similar toopApply |
dg2_t = int delegate(void* i, void* c);_aApplycd2(scope const(char)[]aa, dg2_tdg);_aApplywd2(scope const(wchar)[]aa, dg2_tdg);_aApplycw2(scope const(char)[]aa, dg2_tdg);_aApplywc2(scope const(wchar)[]aa, dg2_tdg);_aApplydc2(scope const(dchar)[]aa, dg2_tdg);_aApplydw2(scope const(dchar)[]aa, dg2_tdg);