Czy to jest prawidłowe C++ (biorąc pod uwagę najnowszy standard)? Dostaję błędy kompilacji z clangiem near-top-of-tree/libC++ na Ubuntu 12.04. Jeśli to powinno być ważne, wyślę listę clang-dev z komunikatami o błędach i takimi.Czy element o nazwie unordered_set <reference_wrapper <Ty>> jest prawidłowy?
#include <functional>
#include <unordered_set>
struct X
{
int i;
};
void f()
{
std::unordered_set<std::reference_wrapper<X>> setOfReferencesToX;
// Do stuff with setOfReferencesToX
}
** Tak na marginesie, jestem zmęczony kwalifikacyjna, że pytanie/odpowiedź jest specyficzne dla najnowszego standardu. Czy społeczność C++ jako całość powinna zamiast tego zacząć kwalifikować rzeczy, które są specyficzne dla starego standardu? Nowszy standard jest dostępny od około roku.
+1 za notatkę końcową. – Griwes
"Czy społeczność C++ jako całość powinna zamiast tego zacząć kwalifikować rzeczy, które są specyficzne dla starego standardu?" Nie. Biorąc pod uwagę ogromną liczbę użytkowników, którzy nie są w stanie dokonać aktualizacji do kompilatora z bardziej kompletną obsługą C++ 11, nie mówiąc już o popularności pewnej rodziny kompilatorów, która tylko powoli aktualizuje obsługę C++ 11, C++ idzie oznaczać C++ 03 przez co najmniej kolejny rok, jeśli nie dwa. I nie zapominajmy, że ani GCC, ani Clang nie deklaruje pełnej zgodności z C++ 11. Przyszłość nie jest teraźniejszością i udawanie, że tak się nie stanie. –