CTFE時にネストした関数から外側の関数の引数が正しく使えない.

投稿ツリー


このトピックの投稿一覧へ

なし CTFE時にネストした関数から外側の関数の引数が正しく使えない.

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2010/3/30 3:53
satoru_h  新米   投稿数: 9
ネストした関数を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);
  };
}
投票数:94 平均点:7.23
返信する

この投稿に返信する

題名
ゲスト名
投稿本文

  条件検索へ


メインメニュー

ログイン

ユーザー名:


パスワード:





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

Menu