問題タブ [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.

0 投票する
0 に答える
207 参照

cgal - cgal のデモ Polyhedron、デバッガーが qscopedpointer.h でクラッシュする

このデモでは何も変更していませんが、まず問題なく動作します。しかし、昼食後、もう一度実行したところ、デバッガーがクラッシュし、エラー (以下) が発生しました。デバッガーは qscopedpointer.h の次の行に到達しました。

inline T *data() const

{リターンd; }

エラー:

Polyhedron_3.exe の 0x00007FFDE604516A (Qt5Guid.dll) で未処理の例外: 0xC000041D: アクセス違反読み取り場所 0x00000004: ユーザー コールバック中に未処理の例外が発生しました。

次のようなスタック トレース:

Qt5Guid.dll!QScopedPointer >::data() 行 135 C++ Qt5Guid.dll!qGetPtrHelper >>(const QScopedPointer > & p) 行 983 C++

Qt5Guid.dll!QScreen::d_func() 行 59 C++

Qt5Guid.dll!QScreen::geometry() 行 302 C++

qwindowsd.dll!QWindowsWindow::isFullScreen_sys() 行 1630 C++

qwindowsd.dll!QWindowsWindow::handleResized(int wParam) 1394 行 C++

qwindowsd.dll!QWindowsContext::windowsProc(HWND__ * hwnd, unsigned int message,
QtWindows::WindowsEventType et, unsigned __int64 wParam, __int64 lParam, __int64 * result) 行 1011 C++

qwindowsd.dll!qWindowsWndProc(HWND__ * hwnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) 行 1271 C++

qwindowsd.dll!qWindowsWndProc(HWND__ * hwnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) 行 1280 C++

qwindowsd.dll!WindowCreationData::initialize(const QWindow * w, HWND__ * hwnd, bool frameChange, double opacityLevel) 行 707 C++

qwindowsd.dll!QWindowsWindow::setWindowFlags_sys(QFlags wt, unsigned int flags) 行 1571 C++

qwindowsd.dll!QWindowsWindow::setParent_sys(const QPlatformWindow * parent) 行 1294 C++

qwindowsd.dll!QWindowsWindow::setParent(const QPlatformWindow * newParent) 行 1260 C++

Qt5Guid.dll!QWindow::setParent(QWindow * 親) 614 行 C++

Qt5Widgetsd.dll!q_createNativeChildrenAndSetParent(const QWidget * parentWidget) 行 1377 C++

Qt5Widgetsd.dll!q_createNativeChildrenAndSetParent(const QWidget * parentWidget) 行 1382 C++

Qt5Widgetsd.dll!QWidgetPrivate::create_sys(unsigned __int64 window, bool initializeWindow, bool destroyOldWindow) 行 1481 C++

Qt5Widgetsd.dll!QWidget::create(unsigned __int64 window, bool initializeWindow, bool destroyOldWindow) 行 1321 C++

Qt5Widgetsd.dll!QWidget::setVisible(bool visible) 行 8060 C++

Qt5Widgetsd.dll!QWidget::show() 行 7671 C++

Polyhedron_3.exe!main(int argc, char * * argv) 51 行目 C++

Polyhedron_3.exe!__tmainCRTStartup() 行 626 C

Polyhedron_3.exe!mainCRTStartup() 行 466 C

===============================

何が問題なのかわかりません。誰かがこれを解決するためのアドバイスをくれれば幸いです。ありがとう。

0 投票する
1 に答える
3306 参照

qt - QScopedPointers の QList

QScopedPointers を QList に格納しようとしています。

こんなコメント見つけた

QList > を使用することもできます。— クバオーバー

(この回答に対する最初のコメント: https://stackoverflow.com/a/21120575/3095014 )

この投稿https://forum.qt.io/topic/59338/solved-qlist-of-qscopedpointersは、これが機能することを意味します。しかし、2 番目のリンクのコードをコンパイルしようとすると、次のエラーが発生します。

なぜこれがうまくいかないのですか?

0 投票する
0 に答える
542 参照

c++ - 抽象クラスの QScopedPointer の QList を持つことは可能ですか?

要素 type の定数を持つクラスにQListorが必要です。次のようなものを簡単に使用できます。QVectorQScopedPointer< SomeAbstractClass >

しかし ではQScopedPointer、コピー コンストラクターが無効になっており、抽象クラスをインスタンス化できません。

もちろん簡単に使えますQSharedPointerが、どうしても使いたくないのでどうしたらいいでしょうか?

編集:これが私のサンプルコードで、このエラーが発生しました: