返信する: dmd
- CTFE時にネストした関数から外側の関数の引数が正しく使えない.
- 投稿者: satoru_h 投稿日時: 2010/3/30 3:53
- ネストした関数をCTFEで実行する時に外側の関数の引数が.init(or null)となる問題が発生しました.
Linux/dmd 2.042です.
他の環境では確認していません.auto f(string s) { return { assert(s); }; }
関数fをCTFEで実行すると,fの引数に関係なくassertに失敗します.
通常の実行では問題ありません.
CTFE時にネストした関数内部では外側の関数の引数がすべて.init(or null)になってしまっているようです.
とりあえず以下の様にすれば回避できます.auto f(string s_) { auto s = s_; return { assert(s); }; }