AS3에서 몇 년 후 C++을 다시 배우려고합니다. 참고 문헌은 여전히 나에게 적합합니다.함수의 결과를 참조로 전달할 수 없습니다.
는 다음과 같은 기능을 고려 : 일을 지금
#include <cstdio>
#include <list>
void f(std::list<int>& v) {
for (std::list<int>::iterator i = v.begin(); i != v.end(); ++i)
printf("Hello %d\n", *i);
}
std::list<int> get(void) {
std::list<int> list;
list.push_back(0);
return list;
}
을 다음
std::list<int> l = get();
f(l);
괜찮지 만, f(get())
다음과 같은 오류 발생합니다 것을 왜
"no matching function for call to 'f'", "candidate function not viable: no known conversion from `'std::list<int>' to 'std::list<int>&' for 1st argument"
을 ? 함수의 결과가 눈에 보이지 않으므로 const
입니까? 이 작업을 수행 할 때
일단 나는 clang의 gcc의 오류 메시지를 선호합니다 : '오류 : '형식의 일시적인'형식의 'std :: list> : list > '' –