Я знаю, что этот вопрос появляются похожие на уже ответили те, но так как ответ дан им не работает для меня, я не считаю этот вопрос быть продублируйте ихВызов резьбовыми функции с аргументами, не представляется возможным
Мне хорошо известно, что вопрос: как я вызываю функцию C++ как поток, который имеет 1 или более аргументов, был дан ответ несколько раз - как здесь, так и в разных учебниках, - и в каждом случае ответ просто что это способ сделать это:
(пример взято непосредственно из this question)
Однако я пробовал копировать оба этих кода и многие другие (более или менее идентичные) примеры того, как это сделать, и все же каждый раз, когда я компилирую (через терминальный как таковой g++ test.cpp -o test.app
(.app необходимо добавить, потому что Я нахожусь на Mac (Заметьте, что этот способ компиляции действительно работает для меня, и что ошибка просто не является результатом того, что я не знаю, как скомпилировать C++-программу))) такую программу я получаю эту ошибку сообщение:
test.cpp:16:12: error: no matching constructor for initialization of 'std::__1::thread'
thread t1(task1, "Hello");
^~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/thread:389:9: note: candidate constructor template not viable: requires single argument '__f', but
2 arguments were provided
thread::thread(_Fp __f)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/thread:297:5: note: candidate constructor not viable: requires 1 argument, but 2 were provided
thread(const thread&);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/thread:304:5: note: candidate constructor not viable: requires 0 arguments, but 2 were provided
thread() _NOEXCEPT : __t_(0) {}
Мой вопрос для этого есть то, что я делаю неправильно по сравнению со всеми людьми, которые possitively могут сделать резьбовыми функции с аргументами, а так как я не нашли каких-либо вопросов, которые задают люди experiancing подобные проблемы, я не считаю этот вопрос дубликат многих Как вызвать резьбовую функцию с аргументами
Насколько я знаю, с использованием нитей Безразлично» t требуют каких-либо конкретных флагов компилятора, и поскольку я отлично умею запускать программы с потоковыми функциями без аргументов, вы не можете утверждать, что мой компьютер или компилятор неспособен использовать потоки в целом.
Если вы делаете 'g ++ --version', что он сообщает? У вас есть очень старая версия Clang (на macOS 'gcc' и' g ++ 'обычно являются псевдонимами компилятора Clang), который не полностью поддерживает C++ 11 (стандарт, в который был добавлен' std: thread')? –
Измените поток proc, чтобы взять 'char const *' –
Добавить компилятор switch -std = C++ 11. –