I
Size: a a a
I
AS
AS
I
GS
O
this
, переданный в лямбду, становится невалиден. Вызов переданной лямбды делается таким образом:template<typename... Args>
void call_impl(Args&&... args) const
{
QMetaObject::invokeMethod(
context,
[this, args = std::tuple(std::forward<Args>(args)...)]() mutable {
std::apply(callback, std::move(args));
},
Qt::ConnectionType::QueuedConnection);
}
context
в данном случае — это QAbstractEventDispatcher*
, я его получаю через QAbstractEventDispatcher::instance();
однократно при создании моего объекта.std::apply(callback, std::tuple(std::forward<Args>(args)...));
исправляет падение, но я не очень понимаю, в какую сторону дальше копать в поисках причины. Е
this
, переданный в лямбду, становится невалиден. Вызов переданной лямбды делается таким образом:template<typename... Args>
void call_impl(Args&&... args) const
{
QMetaObject::invokeMethod(
context,
[this, args = std::tuple(std::forward<Args>(args)...)]() mutable {
std::apply(callback, std::move(args));
},
Qt::ConnectionType::QueuedConnection);
}
context
в данном случае — это QAbstractEventDispatcher*
, я его получаю через QAbstractEventDispatcher::instance();
однократно при создании моего объекта.std::apply(callback, std::tuple(std::forward<Args>(args)...));
исправляет падение, но я не очень понимаю, в какую сторону дальше копать в поисках причины. BB
O
__this
вместе с куском памяти рядом — ничего интересного я не смог обнаружить с помощью отладчика, не исключаю, что мне навыков не хватило. Совершенно случайные обстоятельства — это, например, возврат вектора из виртуальной функции. Если я возвращал вектор из трёх элементов — переписывало, если из двух — нет (точнее, не переписывало интересующий меня участок, портило ли оно что-то ещё, сказать затруднительно)Е
__this
вместе с куском памяти рядом — ничего интересного я не смог обнаружить с помощью отладчика, не исключаю, что мне навыков не хватило. Совершенно случайные обстоятельства — это, например, возврат вектора из виртуальной функции. Если я возвращал вектор из трёх элементов — переписывало, если из двух — нет (точнее, не переписывало интересующий меня участок, портило ли оно что-то ещё, сказать затруднительно)BB
__this
вместе с куском памяти рядом — ничего интересного я не смог обнаружить с помощью отладчика, не исключаю, что мне навыков не хватило. Совершенно случайные обстоятельства — это, например, возврат вектора из виртуальной функции. Если я возвращал вектор из трёх элементов — переписывало, если из двух — нет (точнее, не переписывало интересующий меня участок, портило ли оно что-то ещё, сказать затруднительно)AS
__this
вместе с куском памяти рядом — ничего интересного я не смог обнаружить с помощью отладчика, не исключаю, что мне навыков не хватило. Совершенно случайные обстоятельства — это, например, возврат вектора из виртуальной функции. Если я возвращал вектор из трёх элементов — переписывало, если из двух — нет (точнее, не переписывало интересующий меня участок, портило ли оно что-то ещё, сказать затруднительно)O