EH PANOWIE CORAZ WIĘCEJ AMATORÓW SIĘ PCHA DO PROGRAMOWANIA HEHE MAM NADZIEJĘ, ŻE PRZEJDZIE TA NOWELIZACJA USTAWY I PROGRAMOWAĆ BĘDZIE MOŻNA TYLKO Z LICENCJĄ BO SERIO NIEKTÓRZY WYKOPUJĄ NIE ZNAJĄC NAWET PODSTAW C++98
Mam przeświadczenie że C++ nie byłby taki popularny jakby nie tłoczyli go do głów studentom informatyki. Tyle jest innych fajnych języków na świecie, a życie jest za krótkie aby wgłębiać się we wszystkie niuanse C++
@UmCykCyk: studentom informatyki raczej się tłoczy C a nie C++. C++ jest popularny, bo poza C jest to praktycznie jedyny język wysokiego poziomu w kategorii "system programming language". Ostatnio Rust trochę próbuje go w tej kwestii wygryźć i częściowo D.
Tyle jest innych fajnych języków na świecie, a życie jest za krótkie aby wgłębiać się we wszystkie niuanse C++
@UmCykCyk: Tyle, że nie każdy język jest do wszystkiego. Są dziedziny w których C++ sprawdzi się o niebo lepiej od C#/Javy. I w drugą stronę: w niektórych dziedzinach lepiej użyć Pythona niż C++. A i prawda jest taka, że żeby dobrze poznać niuanse dowolnego języka, trzeba trochę nad nim posiedzieć.
@sasik520 Jest jeszcze scala, język fajny do czasu aż nie nawrzucali do niego wszystkich rzeczy jakie tylko autorzy podpatrzyli gdzieś indziej. Nawet jeden z jego twórców wycofał się z prac nad nim, bo stwierdził że zrobił się ze scali zmutowany potworek.
@UmCykCyk: c# jest jeszcze fajny pod tym kątem, ale czasem zarządzana pamięć boli. Krąży za mną pomysł zrobienia języka kompilowanego do c++ z ograniczeniem ficzerów i możliwości, coś jak coffee script dla js. Ale coś mi mówi, że to praca na darmo ( ͡°ʖ̯͡°)
C++ zdecydowanie zmienia się na lepsze. Już C++11 przyniósł szereg bardzo dobrych od dawna pożądanych zmian. Szkoda tylko, że póki co maks co wyciągniemy z kompilatora microsoftu to implementacja 11/14 niepełna dla obu standardów ;) Osobiście najbardziej czekam na moduły, miałem nadzieję, że może w C++17, ale wygląda na to, że jednak nie :(
Trochę lipa z tym nowym C++... Przynajmniej kilka fajnych małych ficzerów dostaniemy sprawiających że kod wygląda ładniej, czytelniej i ciężej o bugi, a konkretniej - structured bindings - initialized if - constexpr if (może coś uda się ugrać tym póki nie ma konceptów) - optional/variant (tu szkoda, że nie dodali operatora ?? którym można by łatwo robić łańcuch obliczeń jeśli optional nie ma nullptr)
@CoTuSieWyprawia: @TheNewIcek: To co wymieniłeś i to co jest w tym znalezisku to tylko rzeczy zatwierdzone w czasie ostatniego spotkania komitetu standaryzacyjnego w Oulu. Pełniejsze listy nowych featerów C++17 są np. tu i tu.
Z większych/ciekawszych zmian: - fold expressions (czyli użycie wszystkich parametrów wariadycznych template'a poprzez zwykłe wpisanie wielokropka) - zagnieżdżanie namespace'ów (namespace a::b::c { /* kod */ }) - usunięcie m.in. auto_ptr, bind1st, ...
@CoTuSieWyprawia: Fold expression to właśnie taki trik pozwalający na rozpakowanie wszystkich parametrów szablonowych bez pisania rekursywnych funkcji template'owych.
Komentarze (200)
najlepsze
@UmCykCyk: Tyle, że nie każdy język jest do wszystkiego. Są dziedziny w których C++ sprawdzi się o niebo lepiej od C#/Javy. I w drugą stronę: w niektórych dziedzinach lepiej użyć Pythona niż C++. A i prawda jest taka, że żeby dobrze poznać niuanse dowolnego języka, trzeba trochę nad nim posiedzieć.
- structured bindings
- initialized if
- constexpr if (może coś uda się ugrać tym póki nie ma konceptów)
- optional/variant (tu szkoda, że nie dodali operatora
??
którym można by łatwo robić łańcuch obliczeń jeśli optional nie ma nullptr)Szkoda za to że wycofali się z ustalenia
Z większych/ciekawszych zmian:
- fold expressions (czyli użycie wszystkich parametrów wariadycznych template'a poprzez zwykłe wpisanie wielokropka)
- zagnieżdżanie namespace'ów (
namespace a::b::c { /* kod */ }
)- usunięcie m.in.
auto_ptr, bind1st
, ...Czyli zamiast:
template
void pb(std::vector&) {}
template
void pb(std::vector& v, U&& val, Args&&... args) { v.push_back(val); pb(v, args...); }
Piszesz po prostu:
template
void pb(std::vector& v, Args&&... args) { (v.push_back(args), ...); }
http://en.cppreference.com/w/cpp/language/fold
https://isocpp.org/files/papers/n4295.html
http://baptiste-wicht.com/posts/2015/05/cpp17-fold-expressions.html
@TheNewIcek:
Jeszcze fajna dzięki temu będzie np. iteracja po parach klucz-wartość w mapie. Normalnie Python :)
std::map