Dlaczego w C++ nie mogę użyć zakresowego for na tablicy

Pytania i problemy
cpp
wazer
wazer

Czemu nie można używać zakresowego for w linii 7 #include

using namespace std;

void coutContentOfTheArray(const char source[]) {
    /*
    for(auto & elem : source){
        cout<
Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

wazer:

i czemu nie można używać zakresowego for w linii 7

Podczas przekazywania tablicy jako parametr jest ona traktowana jako wskaźnik. Tablice z zasady są nieciekawe w używaniu. Przyszły do C++ prosto z C.

Dlatego właśnie używa się takich rzeczy jak std::vector. Można to jednak "obejść" używając template, np. w taki sposób:

#include 
 
template 
void arrayTest(T& source) {
    for (auto &elem : source) {
        std::cout << elem;
    }
}
 
int main() {
    char source[100] = {"pierwszy drugi trzeci czwarty piaty"};
    arrayTest(source);
    return 0;
}
system
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.