> 백엔드 개발 > C++ > 본문

C++ 구문 오류를 해결하는 방법: '<' 토큰 앞에 초기화 프로그램이 필요합니까?

WBOY
풀어 주다: 2023-08-25 18:30:21
원래의
3363명이 탐색했습니다.

如何解决C++语法错误:'expected initializer before '<' token'?

C++ 구문 오류를 해결하는 방법: ''<' 앞에 초기화 프로그램이 필요합니까?

C++ 프로그래밍에서는 다양한 오류가 자주 발생합니다. 일반적인 오류 중 하나는 "'<' 토큰 앞에 초기화가 필요합니다"입니다. 이 오류는 일반적으로 템플릿 클래스나 템플릿 함수를 사용할 때 발생하며 일부 특정 구문 세부 사항에 주의해야 합니다. 이번 글에서는 해당 오류의 원인과 해결 방법에 대해 알아보겠습니다.

먼저 이 오류를 더 잘 이해하기 위해 코드 예제를 살펴보겠습니다.

template <typename T>
void PrintVector(vector<T> vec) {
    for (const auto& elem : vec) {
        cout << elem << " ";
    }
    cout << endl;
}

int main() {
    vector<int> myVector = {1, 2, 3, 4, 5};
    PrintVector<int>(myVector);
    return 0;
}
로그인 후 복사
로그인 후 복사

위 코드에서는 벡터 개체를 받아들이고 해당 요소를 인쇄하는 템플릿 함수 PrintVector를 정의했습니다. 메인 함수에서는 정수를 포함하는 벡터 객체를 생성하고 이를 PrintVector 함수에 전달합니다. 그러나 이 코드를 컴파일하려고 하면 "'<' 토큰 앞에 초기화가 필요합니다"라는 오류 메시지가 나타납니다.

이 오류가 발생하는 이유는 컴파일러가 "<" 기호를 인식하지 못하기 때문입니다. 이는 C++ 컴파일러가 기본적으로 "<"를 템플릿 매개변수 목록의 일부가 아닌 비교 연산자로 해석하기 때문입니다. 따라서 "<"가 템플릿 매개변수 목록의 일부임을 컴파일러에 알리는 방법이 필요합니다.

이 오류를 해결하는 방법은 매우 간단합니다. 템플릿 기능 뒤의 "<" 기호 앞에 키워드 "템플릿"을 추가하기만 하면 됩니다. 수정된 코드는 다음과 같습니다.

template <typename T>
void PrintVector(vector<T> vec) {
    for (const auto& elem : vec) {
        cout << elem << " ";
    }
    cout << endl;
}

int main() {
    vector<int> myVector = {1, 2, 3, 4, 5};
    PrintVector<int>(myVector);
    return 0;
}
로그인 후 복사
로그인 후 복사

이제 "<"가 템플릿 매개변수 목록의 일부임을 컴파일러에 알리기 위해 "템플릿" 키워드를 추가했습니다. 이를 통해 컴파일러는 코드에서 템플릿 유형을 올바르게 식별할 수 있습니다.

오류를 수정한 후 코드를 다시 컴파일하면 예상한 결과를 얻을 수 있습니다. 이는 C++ 구문 오류 "'<' 토큰 앞에 초기화 프로그램이 필요함"을 해결하는 방법입니다.

요약하자면, C++ 프로그래밍에서 "'<' 토큰 앞에 초기화가 필요합니다"라는 오류 메시지가 나타나면 템플릿 유형이 올바르게 지정되지 않았기 때문에 발생할 수 있습니다. 이 오류는 템플릿 함수나 템플릿 클래스 앞에 "template" 키워드를 추가하고 "<" 기호가 템플릿 매개변수 목록의 일부로 올바르게 해석되는지 확인하여 해결할 수 있습니다. 이 기사가 독자들이 이러한 일반적인 C++ 구문 오류를 해결하는 데 도움이 되기를 바랍니다.

위 내용은 C++ 구문 오류를 해결하는 방법: '<' 토큰 앞에 초기화 프로그램이 필요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿