Yıllarca süren AS3, C++'yi yeniden denemeye çalışıyorum. Referanslar hala bana uyuyor.İşlev sonucu başvuru olarak iletilemiyor
aşağıdaki işlevleri göz önünde bulundurun: yapıyor, Şimdi
#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;
}
aşağıdadır:
std::list<int> l = get();
f(l);
iyi, ama f(get())
aşağıdaki hata üretecektir: olmasıdır Neden
"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"
? Bir işlev sonucu görünmez const
olduğu için mi? Bunu yaptığınızda
Bir kerelik için gcc'nin hata iletisini clang'ın: 'hata: const olmayan başvuru türünün 'std :: list> &' türünden geçici olarak başlatılmasını 'std: : liste > '' –