Заголовок темы не включая - mingw64, C++ 20C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Заголовок темы не включая - mingw64, C++ 20

Сообщение Anonymous »


У меня есть класс Timer, реализованный с использованием потоков и мьютекса:

#pragma один раз #include "Common.hpp" //только файлы заголовков SDL #include #include #include класс CallbackDelegate; пространство имен Util { класс Таймер { публика: структура CallbackDelegate { класс друга Таймер; частный: CallbackDelegate(void (*f)(), int bt, int ftd, int ltd, bool lp, bool ofl): func(f), BeginTime(bt), firstTimeDelay(ftd),loopTimeDelay(ltd),loop(lp), onFirstLoop(ofl) {} CallbackDelegate(CallbackDelegate* другое) { func = другое-> func; firstTimeDelay = другое->firstTimeDelay; BeginTime = SDL_GetTicks(); циклTimeDelay = другое->loopTimeDelay; цикл = другое-> цикл; onFirstLoop = другое->onFirstLoop; } пустота (* функция)(); интервал начала времени; ИНТ FirstTimeDelay; интервал циклаTimeDelay; логический цикл; bool onFirstLoop; }; частный: std::vector activeStopwatches; std::vector activeCallbacks; std::thread timerThread; std::блокировка мьютекса; публика: Таймер(); ~Таймер(); uint8_t BeginStopwatch() { activeStopwatches.emplace_back(SDL_GetTicks()); вернуть activeStopwatches.size(); } uint8_t BeginWithCallback (делегат CallbackDelegate*); inline int getTime(uint8_t id) {return SDL_GetTicks() - activeStopwatches.at(id);} inline int endStopwatch(uint8_t id) {activeStopwatches.erase(activeStopwatches.begin() + id);} недействительное обновление(); [[nodiscard]] Util::Timer::CallbackDelegate* makeNewLoopedDelegate(void (*func)(), int firstTimeDelay, intloopTimeDelay=-1); [[nodiscard]] Util::Timer::CallbackDelegate* makeNewDelegate(void (*func)(), int Delay); }; } Я получаю эту ошибку и не знаю почему.

include/Timer.hpp:47:4: примечание: 'std::thread' определяется в заголовке ''; ты забыл «#include »? включить/Timer.hpp:5:1: +#include Это моя система сборки:

g++ -c src/*.cpp -std=c++2a -pthread -O3 -Wall -w -m64 -I include -I C:/x86_64-w64-mingw32/include< /п> Почему я получаю эту ошибку? Я порылся в файлах mingw и обнаружил заголовок потока/мьютекса, я использую флаг компилятора C++ 20, -pthread и включаю его с помощью "#include".

Вот простой пример, который тоже не работает
test.cpp

#include интервал основной() { std::thread поток; } Создано с помощью:

g++ test.cpp

Получаю ту же ошибку:
test.cpp: В функции int main(): test.cpp:5:10: ошибка: «поток» не является членом «std» std::thread поток; ^~~~~~ test.cpp:5:10: примечание: 'std::thread' определен в заголовке ''; ты забыл «#include »? test.cpp:2:1: +#include test.cpp:5:10: std::thread поток;
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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