Cześć.
Potrzebuję wypisać listę na konsolę, żeby wszystko było równo postanowiłem w środku cout'a napisać lambdę, która by to zwracała odpowiedniego stringa (ze spacjami). Kod mój wygląda tak:
std::cout<<counter<<[=]()->std::string{
std::string retval = "";
int space_count = 6 - std::to_string(counter).length();
retval.insert(retval.begin()+1, ' ', space_count);
return retval;
}()<<filename<<"\n";
Wszystko się kompiluje, ale program się sypie na lamdzie (nie będę tego edytować, bo korzystam z konsoli i atoma). Wcześniej wyglądał tak:
std::cout<<counter<<[=]()->std::string{
std::string retval = "...";
int space_count = 6 - std::to_string(counter).length();
std::fill_n(retval.begin()+1, space_count, ' ');
return retval;
}()<<filename<<"\n";
I tu niby działa, ale jednak nie:
1. 124124
2. aasdas
3. adx
4. asdasdasdaxasead123
5. dzbanie
6. maciek
7. mras
8. prestiżowy
9. simeajestemmarek
10. somerandomword
11. wagabunda
12. wowxd
Nie wyrównuje.
Nie mam pomysłu co z tym dalej zrobić, nic ciekawszego oprócz insert i fill nie przychodzi mi do głowy, google też za dużo nie podpowiada.
Gdyby ktoś udzielił mi pomocy byłbym zobowiązany.
Pozdrawiam i życzę wesołych Świąt!