가장 짜증나는 구문 분석은 예상치 못한 코드 해석으로 이어질 수 있는 악명 높은 컴파일러 기발함입니다. 함수 선언과 유사한 줄이 실제로 다른 구성을 나타내는 경우 한 가지 난처한 경우가 발생합니다.
다음 줄을 고려하세요.
vector<int> v(istream_iterator<int>(cin), istream_iterator<int>()());
당황스럽게도 이 줄은 함수 선언으로 구문 분석될 수 있습니다. 두 번째 임시 반복자는 논리적으로 유형으로 해석될 수 있지만 첫 번째 임시 반복자의 역할은 덜 명확합니다.
초기 가정과 달리 istream_iterator< int>(cin)은 함수 유형이 아닙니다. 오히려 대체 구문 istream_iterator
C에는 인수 이름을 임의로 괄호로 묶을 수 있는 유사한 선언자 구문이 있습니다. 이 방법은 일반적으로 "실수"로 간주되어 권장되지 않지만 레거시로 인해 C에서는 여전히 지원됩니다.
따라서 istream_iterator
위 내용은 `벡터 v(istream_iterator(cin), istream_iterator()());`가 함수 선언으로 구문 분석되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!