A Touch of Class

2 kwietnia 2012

Last Thursday Bjarne Stroustrup was visiting Institute of CompSci here at Wrocław University with his „Touch of Class” lecture. Most of the questions in the Q&A section were either hostile or stupid (mostly stemming from Bjarne’s claim qsort is inferior to std::sort), but there was also first info about next spec I’ve ever heard of (he mentioned something about C++17 and the need for taking only a small change, if they are to be on time).

The  notoriety of the lecture resulted in what I believe was a total disregard for public safety. The sheer number of people in the auditorium was twice the hall’s capacity. There were not only students present, but programmers from companies from all around the city.  We came in about an hour prior the lecture, but there was almost no sitting places left at that point.  After that in only got worse. People were standing in the door frames, sitting on the stairs, someone got the benches from the corridor and put them almost at the blackboards.  I’ve seen people I last spoke with five years ago. It seemed it was a rock concert of sorts.

Finally, the meeting ended with the guest signing books and posters after which the host kidnapped him for a dinner, away from those pesky geeks.

Tags: , , , ,

C++0x

6 kwietnia 2009

W weekend postanowilem poszperać, jaki jest status specyfikacji C++0x. Niedawno rozmawiałem z Maćkiem, że jeszcze klika miesięcy i roboczy tytuł trzeba będzie zmienić na C++1x.

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:

  1. typedef templates: (template< typename second> using TypedefName = SomeType<OtherType, second, 5>;)
  2. multithreading.
  3. initializer lists (std::vector<std::string> v = { „xyzzy”, „plugh”, „abracadabra” };)

Największa wg mnie porażka?

  1. 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.

Tags: , , ,