Почему мой конструктор/назначение моей копии не работает каждый раз?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему мой конструктор/назначение моей копии не работает каждый раз?

Сообщение Anonymous »

У меня есть класс TimeStampquery с копией и перемещением конструкторов и заданий, я «положительно проверял» результат в модульных тестах, однако у меня есть случай, когда это не работает. < /p>
Объявления: < /p>

Код: Выделить всё

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{};

TimeStampCallback _tsCallback;
FF::QueueStats* _lastStats{};

std::queue _queries;
std::thread _threadCall;
public:

TimeStampQuery(TimeStampCallback tscb);
TimeStampQuery(const TimeStampQuery& other);
TimeStampQuery(TimeStampQuery&& other) noexcept;
TimeStampQuery& operator=(const TimeStampQuery& other);
TimeStampQuery& operator=(TimeStampQuery&& other) noexcept;
void swap(TimeStampQuery& other) noexcept;
~TimeStampQuery();
void Add(int timestamp, int index);
void Add(FF::TimestampPack tsp);

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};
Если доказательство необходимо для убедить>

Подробнее здесь: https://stackoverflow.com/questions/794 ... every-time
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»