返信する: 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);
  };
}
メインメニュー

ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録

Menu