0

C++/CX を使用して WinRT コンポーネントを作成しようとしています。次のコードがありますが、コンパイルできません。それの何が問題なのですか?私が理解していることから、PPL タスクは、結果を伴うタスクである場合、透過的に IAsyncOperation に変換する必要があります。

IAsyncOperation<Boolean>^ Class::OpAsync()
{
    return create_task([] () { return true; });
}

エラーメッセージ

error C2440: 'return' : cannot convert from 'Concurrency::task<_ReturnType>' to 'Windows::Foundation::IAsyncOperation<TResult> ^'
          with
          [
              _ReturnType=bool
          ]
          and
          [
              TResult=bool
          ]
          No user-defined-conversion operator available, or
          No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
4

1 に答える 1

3

create_task() 関数は、IAsyncOperation を受け取り、それをタスクに変換するためのものです (基本的に、必要なものの逆です)。

タスクを IAsyncOperation に変換するには、代わりに create_async() を呼び出す必要があります。

于 2013-01-23T18:16:30.860 に答える