Ich habe ein interessantes Verhalten von G ++ in den Versionen 13 und 14 erlebt. Der folgende Code funktioniert gut in G ++ 14 (MSYS2, Mingw, Windows): < /p>
#include
#include
class A
{
public:
void f()
{
std::cout
error: invalid use of non-static member function 'void A::f()'
< /code>
Nur < /p>
ändernstd::thread t(A::f,&a);
< /code>
zu < /p>
std::thread t(&A::f,&a);
< /code>
Löst das Problem. Anscheinend konnte unter der Non-MSYS2-Variante eine Mitgliedsfunktion anstelle eines Funktionsarguments nicht verwendet werden, aber ein Zeiger auf eine Mitgliedsfunktion konnte? Anscheinend funktionieren andere G ++ 14 -Versionen nicht. < /P>
$ g++ --version
g++.exe (Rev2, Built by MSYS2 project) 14.2.0
Ich habe ein interessantes Verhalten von G ++ in den Versionen 13 und 14 erlebt. Der folgende Code funktioniert gut in G ++ 14 (MSYS2, Mingw, Windows): < /p> [code]#include #include
class A { public: void f() { std::cout error: invalid use of non-static member function 'void A::f()' < /code> Nur < /p> ändernstd::thread t(A::f,&a); < /code> zu < /p> std::thread t(&A::f,&a); < /code> Löst das Problem. Anscheinend konnte unter der Non-MSYS2-Variante eine Mitgliedsfunktion anstelle eines Funktionsarguments nicht verwendet werden, aber ein Zeiger auf eine Mitgliedsfunktion konnte? Anscheinend funktionieren andere G ++ 14 -Versionen nicht. < /P> $ g++ --version g++.exe (Rev2, Built by MSYS2 project) 14.2.0 [/code]
Hier gibt es einfache (vielleicht naive) Konzepte. Sie sollen Typen abschneiden, die mit einem bestimmten Operator nicht kompatibel sind.
namespace concepts
{
template
concept...
Während ich normalerweise meine eigenen Klassen verwende, die vor stl erstellt wurden. Ich habe beschlossen, diese STL -Objekte und Funktionen in einer eigenständigen Bibliothek zu verwenden, die...
Ich habe mehrere Threads, die gleichzeitig an unterschiedlichen Problemen arbeiten.
Manchmal warten einige Threads auf die Ergebnisse anderer Threads, deren Status durch eine boolesche Variable...
Angenommen, ich habe ein std :: atomic und verschiedene Threads führen Operationen wie std :: string foo = map ; und map = baz . Ich speichere keine Referenzen oder Zeiger auf die Werte in der Karte....