string CTFE(string s) { int i, j; L1: for(i = 0; i < s.length; i++) switch(s[i]) { case ' ', '\n', '\r', '\t': continue; default: break L1; } L2: for(j = s.length; j > i; j--) switch(s[j-1]) { case ' ', '\n', '\r', '\t': continue; default: break L2; } return s[i..j]; } import std.stdio; pragma(msg, CTFE(" hello world!\n")); void main(){ writef("'%s'\n", CTFE(" hello world!\n")); } the function works at runtime but fails under CTFE. There may be a few cases where labeled break may be hard to deal with but this one shouldn't cause problems.
https://github.com/D-Programming-Language/dmd/commit/f7904df0868ba2996785a9812df66991b124e0d6 Labelled continue is added here: https://github.com/D-Programming-Language/dmd/commit/897202a6178cce17c75512a9ca9a0230b31255cf
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル