3

関数NuiCreateSensorByIndex(int,INuiSensor**)を使用しようとしています。ネイキッド ポインターを使用しないようにしstd::unique_ptr<INuiSensor> nui;ているので、unique_ptr にしました。今、私はこの関数にアクセスしたいので、次のようにします: hr = NuiCreateSensorByIndex(i, &nui.get());、しかしこれは間違っています:

KinectManager.cpp:29: error: C2102: '&' requires l-value

何が間違っていて、どうすれば修正できますか?

4

3 に答える 3

0

unique_ptr の目的は、リソースの所有権を制御することです。ポインターへのポインターは、リソースの所有権を変更するリソースのアドレスを変更することです。解決策の 1 つは、まず所有権を解放してから、次のように再利用することです。

auto p = uni.release();
NuiCreateSensorByIndex(0, &p);
uni.reset(p);
于 2018-04-16T16:44:33.020 に答える