2011-04-11 2 views
1
for each (auto obs in observers) 
    *obs = true; 

이 컴파일에 icc 문제가 있습니다.ICC 컴파일시 C++ 0x 문제

error : cannot deduce "auto" type (initializer required)

위의 문제를 해결하는 데 도움을주십시오. 감사.

답변

10

이 구문은 C++에서는 유효하지 않습니다. 대신이 시도 : C와

for (auto &obs: observers) 
    *obs = true; 
5

: 컴파일러가 루프 범위 기반 지원하는 경우

for (auto obs_iter=observers.begin(); obs_iter != observers.end(); ++obs_iter) 
    **obs_iter = true; 

(이 개체에 observers를 저장하는 포인터를 가정), 다음을 수행 할 수 있습니다 ++ 0x (또는 C++ 11) 범위 기반 루프의 경우 다음을 수행 할 수 있습니다.

for (auto& i : observers) { 
    i = true; 
}