Quali vantaggi ha utilizzando std::reference_wrapper
come parametro modello di contenitori anziché puntatori grezzi? Questo è std::vector<std::reference_wrapper<MyClass> >
vs. std::vector<MyClass*>
Vantaggi dell'utilizzo di reference_wrapper anziché del puntatore raw nei contenitori?
mi piace dimenticando i valori nulli e non dover usare la sintassi del puntatore, ma la verbosità dei tipi (cioè vector<reference_wrapper<MyClass> >
) più avere lo std chiamata utilizzo del sito :: ref per avvolgere il riferimento effettivo mi fa penso che non ne valga la pena.
Mi riferisco ai casi in cui l'utilizzo di std :: shared_ptr o di qualsiasi altro puntatore intelligente non è un'opzione.
Ci sono altri vantaggi dell'utilizzo di reference_wrapper o di altri fattori che attualmente non prendo in considerazione? (Penso che la mia domanda si applichi sia a reference_wrapper di C++ 11 sia a boost)
IMO, la non nullità di riferimento è un grande vantaggio, che spesso supera la verbosità. Ma questa è solo un'opinione di un odio ossessionato. – kkm
@kkm mantiene questo argomento ancora con [not_null] (https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#i12-declare-a-pointer-that-must-not-be-null -as-not_null) puntatori? – Woofas
@Woofas: Forse no. Non ho molta familiarità con le ultime proposte linguistiche. Questo è stato fuori per 3 giorni! :) – kkm