C++0x
W weekend postanowilem poszperać, jaki jest status specyfikacji
Specyfikacja wydaje się „lądować”… Komitet ISO wydał coś, co nazywa się „szkicem do głosowania międzynarodowego” (Committee Draft for international ballot). Zmiany opisane są m.in w Wikipedii. Nie przeczytałem jeszcze tego (draft ma 1300 stron, artykuł na Wiki też najkrótszy nie jest), ale w sumie: niezbyt mi się podoba. Na pierwszy rzut oka wygląda, jakby ktoś tam w Komitecie był zafascynowany Pythonem.
To znaczy – to nie zupełnie tak. Te rzeczy są fajne, tylko tak się zastanawiam, czy mimo wszystko nie pojawi się za dużo nowych słów kluczowych, nowych konstrukcji. I kiedy to wszystko trafi do GCC, MS CL i innych? No i kiedy to trafi do rvct… Obawiam się, że pracując przy środowiskach osadzonych, pisząc przenośny kod albo taki, który oprócz VS11 będzie się musiał kompilować na 2010 i 2008, C++0x nie będzie żadną opcją.
Moi ulubieńcy:
- typedef templates: (template< typename second> using TypedefName = SomeType<OtherType, second, 5>;)
- multithreading.
- initializer lists (std::vector<std::string> v = { „xyzzy”, „plugh”, „abracadabra” };)
Największa wg mnie porażka?
- move constructor. Coś takiego jak pewien znany moim znajomym steal constructor.
No i na koniec, odrobina Pythona:
int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
x *= 2;
}
Ah, nie! to C++0x!…
Update: Committee Draft z marca 2009. Dodatkowo, wszystkie dokumenty komitetu oraz dokumenty z roku 2009.















Za bardzo nie wiem czemu tak narzekasz…
Słów kluczowy nie ma za dużo. Wprowadzane są tylko niezbędne rzeczy. Jeżeli coś może zostać wprowadzone jako standardowa biblioteka a nie dodatkowa funkcja języka, to tak własnie jest wprowadzane.
Jeżeli chodzi o zgodność kompilatorów z nadchodzącym standardem, to rzeczą oczywistą jest to, że jakiś czas będzie musiał minąć zanim coś sensownego się pojawi. Nie mniej jednak dla przykładu najnowsza wersja GCC uwzględnia już kilka nowości które zostaną wprowadzone w C++0x.
Wg mnie ten standard przyniesie wiele dobrych rzeczy…choć jak na razie piszę to mimo tego że też jeszcze nawet nie dokończyłem czytać wiki…
Oglądałem za to parę wykładów z sieci na temat c++0x