Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Het combinable<T> object is bedoeld om thread-privékopieën van gegevens te bieden, om vergrendelingsvrije thread-lokale subberekeningen uit te voeren tijdens parallelle algoritmen. Aan het einde van de parallelle bewerking kunnen de thread-privésubberekeningen vervolgens worden samengevoegd in een eindresultaat. Deze klasse kan worden gebruikt in plaats van een gedeelde variabele en kan leiden tot een prestatieverbetering als er anders veel conflicten zouden optreden op die gedeelde variabele.
Syntaxis
template<typename T>
class combinable;
Parameterwaarden
T
Het gegevenstype van het uiteindelijke samengevoegde resultaat. Het type moet een kopieerconstructor en een standaardconstructor hebben.
Leden
Openbare constructors
| Naam | Description |
|---|---|
| combineerbaar | Overbelast. Maakt een nieuw combinable object. |
| ~combinatiebare destructor | Vernietigt een combinable object. |
Openbare methoden
| Naam | Description |
|---|---|
| wissen | Wist eventuele tussenliggende rekenkundige resultaten van een eerder gebruik. |
| combineren | Berekent een uiteindelijke waarde uit de set van thread-lokale subberekeningen door de meegeleverde combineer-functor aan te roepen. |
| combine_each | Berekent een uiteindelijke waarde uit de set thread-lokale subberekeningen door de meegeleverde combinatie-functor eenmaal per thread-lokale subberekening aan te roepen. Het uiteindelijke resultaat wordt verzameld door het functieobject. |
| lokale | Overbelast. Retourneert een verwijzing naar de draad-privé subberekening. |
Openbare operators
| Naam | Description |
|---|---|
| operator= | Wijs toe aan een combinable object vanuit een ander combinable object. |
Opmerkingen
Zie Parallelle containers en objecten voor meer informatie.
Overnamehiërarchie
combinable
Requirements
Koptekst: ppl.h
Naamruimte: concurrentie
duidelijk
Wist eventuele tussenliggende rekenkundige resultaten van een eerder gebruik.
void clear();
combineerbaar
Maakt een nieuw combinable object.
combinable();
template <typename _Function>
explicit combinable(_Function _FnInitialize);
combinable(const combinable& _Copy);
Parameterwaarden
_Functie
Het type initialisatie-functorobject.
_FnInitialize
Een functie die wordt aangeroepen om elke nieuwe thread-privéwaarde van het type Tte initialiseren. Deze moet een operator voor functieoproep ondersteunen met de handtekening T ().
_Kopiëren
Een bestaand combinable object dat in dit object moet worden gekopieerd.
Opmerkingen
De eerste constructor initialiseert nieuwe elementen met de standaardconstructor voor het type T.
De tweede constructor initialiseert nieuwe elementen met behulp van de initialisatie-functor die als parameter _FnInitialize wordt opgegeven.
De derde constructor is de kopieerconstructor.
~combineerbaar
Vernietigt een combinable object.
~combinable();
Combineren
Berekent een uiteindelijke waarde uit de set thread-lokale subberekeningen door de meegeleverde combine functor aan te roepen.
template<typename _Function>
T combine(_Function _FnCombine) const;
Parameterwaarden
_Functie
Het type van het functieobject dat wordt aangeroepen om twee thread-lokale subberekeningen te combineren.
_FnCombine
De functor die wordt gebruikt om de subberekeningen te combineren. De handtekening is T (T, T) of T (const T&, const T&), en moet associatief en commutatief zijn.
Retourwaarde
Het uiteindelijke resultaat van het combineren van alle thread-private subberekeningen.
combine_each
Berekent een uiteindelijke waarde uit de set thread-lokale subberekeningen door de meegeleverde combinatie-functor eenmaal per thread-lokale subberekening aan te roepen. Het uiteindelijke resultaat wordt verzameld door het functieobject.
template<typename _Function>
void combine_each(_Function _FnCombine) const;
Parameterwaarden
_Functie
Het type van het functieobject dat wordt aangeroepen om één thread-lokale subberekening te combineren.
_FnCombine
De functor die wordt gebruikt om één subberekening te combineren. De handtekening is void (T) of void (const T&), en moet associatief en commutatief zijn.
lokaal
Retourneert een verwijzing naar de draad-privé subberekening.
T& local();
T& local(bool& _Exists);
Parameterwaarden
_Bestaat
Een verwijzing naar een Booleaanse waarde. De booleaanse waarde waarnaar door dit argument wordt verwezen, wordt ingesteld op true als de subberekening al bestond op deze thread, en ingesteld op false als dit de eerste subberekening op deze thread was.
Retourwaarde
Een verwijzing naar de thread-specifieke subberekening.
operator=
Wijs toe aan een combinable object vanuit een ander combinable object.
combinable& operator= (const combinable& _Copy);
Parameterwaarden
_Kopiëren
Een bestaand combinable object dat in dit object moet worden gekopieerd.
Retourwaarde
Een verwijzing naar dit combinable object.