이 예제를 고려 함수 선언으로 해석됩니다 이렇게 :벡터 생성자는
std::istream_iterator<std::string> it_begin(iss);
std::istream_iterator<std::string> it_end;
std::vector<std::string> vec(it_begin, it_end);
또는 다음과 같이 각 매개 변수에 괄호를 넣어 :
std::vector<std::string>
vec((std::istream_iterator<std::string>(iss)),
(std::istream_iterator<std::string>()));
또는 C++ 11의 새로운 유니폼 초기화와 왜 컴파일러는 예로의 선언을 구문 분석
std::vector<std::string> vec { /*begin*/, /*end*/ };
함수 선언? 나는 가장 까다로운 구문 분석에 대해 알고 있지만 빈 매개 변수 목록에서만 발생한다고 생각했습니다. 왜 두 번째 해결 방법이 효과가 있는지 궁금합니다.
GCC 4.6.1, 중요한 경우. 나는 또한 comau의 온라인 컴파일러로 시도했다. – jrok
다음과 같이 타이핑을하지 않아도됩니다 :'std :: istream_iterator it_begin (iss), it_end; std :: vector vec (it_begin, it_end); ' –
형식이 잘 구성되어 잘 형식화 된 질문으로 주제별로 유용합니다. 잘 했어. :) –