У меня есть класс TimeStampquery с копией и перемещением конструкторов и заданий, я «положительно проверял» результат в модульных тестах, однако у меня есть случай, когда это не работает. < /p>
Объявления: < /p>
У меня есть класс TimeStampquery с копией и перемещением конструкторов и заданий, я «положительно проверял» результат в модульных тестах, однако у меня есть случай, когда это не работает. < /p> Объявления: < /p> [code]typedef void(__stdcall* TimeStampCallback)(FF::TimestampPack tsp);
struct __declspec(dllexport) TimestampPack { int TimeStamp; int ReaderIndex;
TimestampPack(int ts, int index); std::wstring Towstring(); };
class __declspec(dllexport) TimeStampQuery { protected: mutable std::mutex _mtx, mtxExit; std::condition_variable _cv, _cvExit; bool _run{ true }; int _done{}; int _remaining{}; int _total{};
void CallRunner(); int GetDoneCount(); void WaitForFinish(); FF::QueueStats GetStats(); FF::QueueStats* GetStatsPtr();
int GetRemainingCount(); }; < /code> Определения: < /p> FF::TimestampPack::TimestampPack(int ts, int index) { TimeStamp = ts; ReaderIndex = index; }
std::wstring FF::TimestampPack::Towstring() { std::wstringstream wstr{}; wstr void { TimeStampQuery tsq(tscb); // tsq._tsCallback == tscb // OK ffreader->TSquery = tsq; // ffreader->TSquery._tsCallback == 0x0000000000000000 // should not happen } // break point < /code> Как отмечено выше, я установил точку останова в конце функции, но это как если бы копия не произошла.class __declspec(dllexport) FFreader { TimeStampQuery TSquery{nullptr}; [/code] Если доказательство необходимо для убедить>