htfhere
#programowanie #cpp Próbuję własnie ogarnąć cpp11, korzystam z książki "C++ BIBLIOTEKA STANDARDOWA" wydanie drugie, w przykładzie z lambdami mam następujący kod, który zdaniem autorów książki ma wypisywać "ahoj lambda" ( czego oczywiście nie robi, wypisuje za to literkę s ). Natomiast kiedy pozbędę się cudzysłowów otaczających literkę s kod się nie chce skompilować, podkreśla na czerwono znaki "<<" przy cout i wyskakuje błąd "no operator "<<" matches these operands". Czy ktoś mógłby mi wytłumaczyć w jaki sposób PRAWIDŁOWO deklaruje się parametry wywołania w lambdach?
  • Najlepsze
  • Wszystkie komentarze
n.....i
n.....i
@htfhere: auto l = [] (const string &s){ cout << s << endl;};
Jak widzisz, czarnej magii w tym nie ma.
adios
@htfhere: masz ustawiony namespace? cout nie ma nadpisanego operatora left shift, a std::cout taki operator ma.
adios
@htfhere: include masz?
adios
@htfhere: c++ niedotykane od 2 lat ;)
htfhere
htfhere Autor
0
@nnogi: wyskakuje mi nastepujący błąd: no operator "<<" matches these operands. Btw. a może to dlatego, że korzystam z visual 2010?
htfhere
htfhere Autor
0
@adios: niezależnie od tego czy określę przestrzeń nazw czy nie i tak wyskakuje ten błąd.
htfhere
htfhere Autor
0
@adios: Dayymm jesteś wielki :D