error :: make_unique ist kein Mitglied von 'std'
Ich versuche zu kompilieren, den folgenden thread-pool-Programm, geschrieben am code-review, um es zu testen.
https://codereview.stackexchange.com/questions/55100/platform-independant-thread-pool-v4
Aber ich bin immer der Fehler
threadpool.hpp: In member function ‘std::future<decltype (task((forward<Args>)(args)...))> threadpool::enqueue_task(Func&&, Args&& ...)’:
threadpool.hpp:94:28: error: ‘make_unique’ was not declared in this scope
auto package_ptr = make_unique<task_package_impl<R, decltype(bound_task)>> (std::move(bound_task), std::move(promise));
^
threadpool.hpp:94:81: error: expected primary-expression before ‘>’ token
auto package_ptr = make_unique<task_package_impl<R, decltype(bound_task)>>(std::move(bound_task), std::move(promise));
^
main.cpp: In function ‘int main()’:
main.cpp:9:17: error: ‘make_unique’ is not a member of ‘std’
auto ptr1 = std::make_unique<unsigned>();
^
main.cpp:9:34: error: expected primary-expression before ‘unsigned’
auto ptr1 = std::make_unique<unsigned>();
^
main.cpp:14:17: error: ‘make_unique’ is not a member of ‘std’
auto ptr2 = std::make_unique<unsigned>();
^
main.cpp:14:34: error: expected primary-expression before ‘unsigned’
auto ptr2 = std::make_unique<unsigned>();
InformationsquelleAutor der Frage Ali786 | 2014-07-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
make_unique
ist ein kommenden C++14-Funktion und dadurch möglicherweise nicht auf Ihrem compiler, auch wenn es C++11-konform.Können Sie jedoch problemlos Rollen Sie Ihre eigene Implementierung:
(FYI, hier ist die Finale version von
make_unique
die gewählt wurde, in C++14. Diese enthält zusätzliche Funktionen abdecken, arrays, aber die Allgemeine Idee ist immer noch die gleiche.)InformationsquelleAutor der Antwort ComicSansMS
Wenn du die neueste compiler, können Sie Folgendes ändern in deinem build-Einstellungen:
Dies funktioniert für mich.
InformationsquelleAutor der Antwort Anil8753