LINUX.ORG.RU

История изменений

Исправление Siborgium, (текущая версия) :

Прикладывай минимальный пример своей лапши и вывод компилятора, если хочешь получить ответ.

#include <iostream> 
#include <list> 

template <typename T> 
void foo(std::list<T> arrayList) { 
    const int iSize = 10;
    srand(time(0));
    for (int i = 0; i < iSize; i++) 
        arrayList.push_back(rand() % iSize);

    for (typename std::list<T>::iterator it = arrayList.begin(); it != arrayList
.end(); it++)
        std::cout << (*it) << " ";
} 

int main() {} 

Тебе нужно добавить typename, т.к. iterator – имя в «dependent scope». Впрочем, это все написано в выхлопе компилятора, который ты даже не озаботился прочесть.

Код, кстати, ужасен. Никакой причины так писать в 2020 нет. Используй хотя бы auto и не морочь людям голову.

Еще и древний g++.

Исправление Siborgium, :

Прикладывай минимальный пример своей лапши и вывод компилятора, если хочешь получить ответ.

#include <iostream> 
#include <list> 

template <typename T> 
void foo(std::list<T> arrayList) { 
    const int iSize = 10;
    srand(time(0));
    for (int i = 0; i < iSize; i++) 
        arrayList.push_back(rand() % iSize);

    for (typename std::list<T>::iterator it = arrayList.begin(); it != arrayList
.end(); it++)
        std::cout << (*it) << " ";
} 

int main() {} 

Тебе нужно добавить typename, т.к. iterator – имя в «dependent scope». Впрочем, это все написано в выхлопе компилятора, который ты даже не озаботился прочесть.

Код, кстати, ужасен. Никакой причины так писать в 2020 нет. Используй хотя бы auto и не морочь людям голову.

Исправление Siborgium, :

Прикладывай минимальный пример своей лапши и вывод компилятора, если хочешь получить ответ.

#include <iostream> 
#include <list> 

template <typename T> 
void foo(std::list<T> arrayList) { 
    const int iSize = 10;
    srand(time(0));
    for (int i = 0; i < iSize; i++) 
        arrayList.push_back(rand() % iSize);

    for (typename std::list<T>::iterator it = arrayList.begin(); it != arrayList
.end(); it++)
        std::cout << (*it) << " ";
} 

int main() {} 

Тебе нужно добавить typename, т.к. iterator – имя в «dependent scope». Впрочем, это все написано в выхлопе компилятора, который ты даже не озаботился прочесть.

Код, кстати, ужасен. Никакой причины так писать в 2020 нет. Используй хотя бы auto и не морочь людям голову.

Исходная версия Siborgium, :

Прикладывай минимальный пример своей лапши и вывод компилятора, если хочешь получить ответ.

#include <iostream> 
#include <list> 

template <typename T> 
void foo(std::list<T> arrayList) { 
    const int iSize = 10;
    srand(time(0));
    for (int i = 0; i < iSize; i++) 
        arrayList.push_back(rand() % iSize);

    for (typename std::list<T>::iterator it = arrayList.begin(); it != arrayList
.end(); it++)
        std::cout << (*it) << " ";
} 

int main() {} 

Тебе нужно добавить typename, т.к. iterator – имя в «dependent scope». Впрочем, это все написано в выхлопе компилятора, который ты даже не озаботился прочесть.