Wie übergeben Sie eine Initialisierungsliste als Funktionsargument?

Im Grunde bin ich auf der Suche etwas wie das hier tun:

HANDLE hThread1 = CreateThread(...);
HANDLE hThread2 = CreateThread(...);
HANDLE hThread3 = CreateThread(...);

...

WaitForMultipleObjects( 3, {hThread1,hThread2,hThread3}, FALSE, INFINITE );

stattdessen:

HANDLE hThread[3];
hThread[0] = CreateThread(...);
hThread[1] = CreateThread(...);
hThread[2] = CreateThread(...);

...

WaitForMultipleObjects( 3, hThread, FALSE, INFINITE );

Die einzige Lösung, die ich gefunden habe, ist mit std::initializer_list, aber offensichtlich WaitForMultipleObjects() nicht nicht akzeptieren, eine std::initializer_list

  • Umschreiben WaitForMultipleObjects dann. Während Sie gerade dabei sind, könnte es eine alternative zu verwenden variadically Vorlagen-Funktion statt.
  • WaitForMultipleObjects ist ein WinAPI-Aufruf.
  • Ah, das erklärt es. Ein wrapper in den Sinn kommt, dann.
InformationsquelleAutor Drew Chapin | 2011-11-04
Schreibe einen Kommentar