È questo C++ valido (considerando l'ultimo standard)? Ricevo errori di compilazione con clang/libC++ near-top-of-tree su Ubuntu 12.04. Se dovrebbe essere valido, invierò la mail alla lista clang-dev con i messaggi di errore e così via.È unordered_set <reference_wrapper <Ty>> valido?
#include <functional>
#include <unordered_set>
struct X
{
int i;
};
void f()
{
std::unordered_set<std::reference_wrapper<X>> setOfReferencesToX;
// Do stuff with setOfReferencesToX
}
** Per inciso, sono stanco delle qualifiche che la domanda/risposta è specifico per l'ultimo standard. Potrebbe la comunità C++ nel suo complesso, per favore inizia a qualificare cose che sono specifiche del vecchio standard, invece? Il nuovo standard è uscito da circa un anno.
+1 per la nota finale. – Griwes
"Potrebbe la comunità C++ nel suo complesso, per favore inizia a qualificare cose che sono specifiche del vecchio standard, invece?" No. Dato il numero enorme di utenti che non sono in grado di eseguire l'aggiornamento a un compilatore con supporto C++ 11 più completo, per non parlare della popolarità di una certa famiglia di compilatori che sta aggiornando lentamente il proprio supporto C++ 11, il C++ sta andando significa C++ 03 per almeno un altro anno se non due. E non dimentichiamo che né GCC né Clang rivendicano la piena conformità a C++ 11. Il futuro non è il presente e fingere che sia non lo farà. –