Zgodnie ze standardem std::vector<bool>
nie ma funkcji członka data()
. Jednak następujący fragment kompiluje grzywny z najnowszym GCC z libstdC++:Co robią dane z libstdC++ std :: vector <bool> :: data?
#include <vector>
int main() {
std::vector<bool> v;
v.data();
}
Jeśli staramy się wykorzystać wynik okazuje się, typ zwracany jest void
.
Czy to jest jakieś rozszerzenie gcc lub błąd?
Jeśli ta pierwsza jest prawdziwa, co ona robi?
Nie zgadzam się z dupe. Mam świadomość, że standard nie definiuje danej funkcji, pytam o zachowanie konkretnej implementacji. –
Czy przeczytałeś kod źródłowy? GCC jest open source. –
@LightnessRacesinOrbit Przyznaję, że nie. Wygląda na to, że pomogłoby to. :) –