問題タブ [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.
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
===============================
何が問題なのかわかりません。誰かがこれを解決するためのアドバイスをくれれば幸いです。ありがとう。
qt - QScopedPointers の QList
QScopedPointers を QList に格納しようとしています。
こんなコメント見つけた
QList > を使用することもできます。— クバオーバー
(この回答に対する最初のコメント: https://stackoverflow.com/a/21120575/3095014 )
この投稿https://forum.qt.io/topic/59338/solved-qlist-of-qscopedpointersは、これが機能することを意味します。しかし、2 番目のリンクのコードをコンパイルしようとすると、次のエラーが発生します。
なぜこれがうまくいかないのですか?
c++ - 抽象クラスの QScopedPointer の QList を持つことは可能ですか?
要素 type の定数を持つクラスにQList
orが必要です。次のようなものを簡単に使用できます。QVector
QScopedPointer< SomeAbstractClass >
しかし ではQScopedPointer
、コピー コンストラクターが無効になっており、抽象クラスをインスタンス化できません。
もちろん簡単に使えますQSharedPointer
が、どうしても使いたくないのでどうしたらいいでしょうか?
編集:これが私のサンプルコードで、このエラーが発生しました: