問題タブ [qscopedpointer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QScopedPointer 対 boost::scoped_ptr [どちらを選択するか]
QScopedPointer
とのどちらかを選択できるとboost::scoped_ptr
したら、次の場合にどちらが最も効果的か:
c++ - QScopedPointerの使用方法
使用する例があります
しかし、私のプログラムでは、
このQScopedPointerをエラーなしで使用するにはどうすればよいですか?
c++ - C2248 - QScopedPointer を関数に渡すときにプライベート メンバーにアクセスできない
このコードで次のエラーが発生します。
エラー: C2248: "QScopedPointer": QScopedPointer で宣言されたプライベート メンバーへのアクセスがありません
他の投稿を読んでも役に立ちませんでした。
qt - 'QScopedPointer を変換できません' から 'QStandardItem *'
このコードをエラーなしで使用します
上記のコードを以下のように変更したい:
しかし、私はこのエラーが発生します:
どうすれば問題を解決できますか?
c++ - Qtはブースト::ptr_vectorと同等ですか?
ポインターの所有権を取得するポインター コンテナーが必要です。つまり、要素が削除されるか、コンテナーがスコープ外になると、のようにすべてのポインターが解放されboost::ptr_vector
ます。
QList<QScopedPointer<AbstractClass> >
動作しません (コンパイル エラー、コピー コンストラクターがありませんか?)。
現在、私は を使用してQList<QSharedPointer<AbstractClass> >
いますが、参照カウントとマルチスレッド用の高価なミューテックスを備えているため、やり過ぎのように感じます。
編集: Qt3では非常に同等でしたが、後のバージョンから削除されたQPtrList (@ForEveRに感謝)について知りました。なぜ彼らがそれを削除するのか理解できません。
c++ - Qt: qscopedpointer.h でデバッガーがクラッシュする (アプリケーションは動作する)
Qt の opengl サポートを使用するようにプロジェクトを最近変換した後 (したがって、Qt 5.4.0 MSVC2013 OpenGL 64 ビット キットを使用)、アプリケーションが qscopedpointer.h の 134 行目で常に「クラッシュ」するため、適切にデバッグできませんでした。
デバッグ モードまたはリリース モードで問題なく実行できますが、実際にデバッグするとこのクラッシュが発生します。この問題は、このキットに切り替えて QGLWidget を使用するまでは発生しませんでした。
この問題に対処する方法がわかりません。逆アセンブラーは私にこれを示しています:
4行目は実行できません。
スタックトレース:
私のアプリケーションのどこにも qscopedpointer を直接呼び出していないので、何が問題なのかわかりません。
誰かアドバイスはありますか?今はデバッガが必要ないかもしれませんが、将来必要になることは保証できます。
私のコードは膨大であるだけでなく、投稿する関連チャンクが思い浮かびません。これは、デバッガーがどの行でもクラッシュしないためです。
編集:デバッガーがこの行に到達したときにデバッグを再開しようとすると、続行することがあります。
c++ - シグナルとスロットを持つ QScopedPointer
タイトルが言うように、関係やシグナルとスロットにそれらを渡す方法を見つけることができませんでした。
誰でも簡単なチュートリアルを教えてもらえますか? または紹介?:)
qt - unique_ptr と接続への受け渡し
私のコードでは
問題のコード: connect() のmyNetworkAccessManager.get( )
私の質問は、それを行う最良の方法は何ですか?
私はここの記事を読ん でいて、レガシーコードの下に書かれています:
get() を呼び出すと、基になるメソッドへのポインターが返されます。生のポインタをワイルドに解放するとすぐに、unique_ptr に切り替えることで達成した利点の多くを失うため、可能であればこれを呼び出すことは避けたいと考えています。
アップデート
QScopedPointer を使用するように変更した場合、コードは次のようになります。
これが正しい解決策でしょうか:
更新 2
この link stackoverflowを読むと、 data() を使用することが正しい解決策のようです。つまり、stl から get() を使用することも正しいということです。