@zwei: @that_ugly_dude: Ale tak jest mniej pisania i niby jest czytelniejsze. To było wymyślone wcześniej niż listy inicjalizacyjne, teraz można to zrobić bardziej wydajnie.
@lionbest: @lionbest: fakt że kolega zadał pytanie tutaj (nie znam jego doświadczenia, ale) zdaje się świadczyć przeciwko czytelności (⌐͡■͜ʖ͡■)
po kilku latach doświadczeń ze Scalą jestem szczerym przeciwnikiem przeciążania operatorów - łatwo się rypnąć, no i niekoniecznie każdy interpretuje je tak samo, a funkcja przynajmniej coś Ci powie
@that_ugly_dude: No i tu się można kłócić, co to znaczy czytelniejsze, właściwie dla kogo. Jak ktoś zna bibliotekę, to będzie dla niego bardziej przejrzyste, jak ktoś nie zna, to nie będzie.
Masz racje przeładowanie operatorów, wbrew ich znaczeniu, jest okropne, ale w tym wypadku co najwyżej kontrowersyjne.
Co to za dziwaczna składnia?
options.add_options()("d,debug", "Enable debugging")
("f,file", "File name", cxxopts::value())
;
ThisClass& add_option(std::string, opts) { ....; return *this; }po kilku latach doświadczeń ze Scalą jestem szczerym przeciwnikiem przeciążania operatorów - łatwo się rypnąć, no i niekoniecznie każdy interpretuje je tak samo, a funkcja przynajmniej coś Ci powie
Masz racje przeładowanie operatorów, wbrew ich znaczeniu, jest okropne, ale w tym wypadku co najwyżej kontrowersyjne.
@zwei: kiedyś nie było łatwego sposobu, bo nie było
std::initializer_list