Skip to content

0.3.2

Choose a tag to compare

@m4saka m4saka released this 24 Feb 10:16
· 27 commits to master since this release

新機能

  • Co::Init()でCoTaskLibのライセンス表記がLicenseManagerへデフォルトで追加される機能を追加
    • ライセンス表記追加を実行しない場合は、Co::Init()の第1引数へCo::AddsLicenseYN::Noを指定してください
    • Co::Init()でライセンス表記追加を実行しない場合、手動でCo::AddLicense()を呼び出せば任意のタイミングでの追加が可能です

0.3.1→0.3.2の破壊的変更

  • 入力待ちタスクの関数群の第2引数へ実行後にclearInputを実行するどうかを指定する引数を追加し、デフォルトで有効に
    • 引数が追加された関数一覧:
      • WaitUntilDown(const TInput input, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilUp(const TInput input, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilLeftClicked(const TArea area, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilLeftReleased(const TArea area, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilLeftClickedThenReleased(const TArea area, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilRightClicked(const TArea area, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilRightReleased(const TArea area, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilRightClickedThenReleased(const TArea area, ClearsInputYN clearsInput = ClearsInputYN::Yes)
    • これにより、例えば下記のコードが意図通りに動作しない(1回のキー押下のみで複数の入力待ちタスクが通過する)問題が修正されます
      Co::Task<> MainTask()
      {
          co_await Co::WaitUntilDown(KeySpace);
          co_await Co::WaitUntilDown(KeySpace);
          co_await Co::WaitUntilDown(KeySpace);
          Print << U"3回押されました"; // ← 従来(〜0.3.1)は1回のキー押下のみでここへ到達していた
      }

その他の変更点

  • タスク実行時の動的メモリアロケーション回数の削減によるパフォーマンス向上
  • Co::ScopedDrawerをムーブ不可に修正
  • Co::Task::with()へCo::EmptyTask()の結果を渡すと例外が発生していたのを修正
  • 不使用変数の削除、表記ミスの修正