Wygląda na to, że styl "dla każdego" składni dostępny w C++ 11 pozwala na iterację macierzy bez znajomości faktycznego rozmiaru tablicy (liczba elementów). Zakładam, że ponieważ jest to część nowego standardu, jest to całkowicie bezpieczne, nawet dla macierzy C. Zazwyczaj należy również oddzielnie znać rozmiar tablicy C przed manipulowanie go, ale chcę weryfikacji ze ktoś doświadczony z tej techniki nowy C++, że działa dokładnie tak, jak można się spodziewać:na podstawie pętli w C++
extern float bunch[100];
for (float &f : bunch) {
f += someNumber;
}
Czy jest coś I powinien wiedzieć o nieoczywistych efektach ubocznych lub wadach tej techniki? Nie pokazuje zbyt wiele w kodzie, który widzę, prawdopodobnie dlatego, że większość kodu została napisana, zanim znalazła się w standardzie. Chcesz się upewnić, że jego rzadkie użycie nie jest spowodowane innymi przyczynami, które nie są dobrze znane.
Zawsze możesz znać rozmiar tablicy (https://gist.github.com/3959946#file-arrays-h-L33). Jeśli przekształcisz to w wskaźnik, przestaniesz znać rozmiar. –
@ R.MartinhoFernandes: Niezły sens! –
Ogólnie rzecz biorąc, będziesz żył o wiele szczęśliwszym życiem w stylu C++, niszcząc zwykłe tablice i przechodząc do standardowych kontenerów bibliotek. –