C++11 #12: Jak działa semantyka przeniesienia ?

Referencje do r-wartości.

Semantyka przeniesienia to jedna z kluczowych koncepcji nowoczesnego języka C++, która zadebiutowała w C++11. Sam język potrzebował jednak kilku nowych funkcjonalności, które umożliwiłyby wprowadzenie tej idei w życie.

Podstawą stały się referencje do r-wartości (ang. r-value references).

(więcej…)

Programisto, słuchaj podcastów !

Podcasty dla programistów.

Ogólnie rzecz biorąc, podcasty na poważnie przebiły się do mojej świadomości w zeszłym roku. Okazuje się, że bardzo odpowiada mi taki sposób przekazywania informacji. Naturalnym krokiem było odnalezienie wartościowych audycji, które byłyby związane z programowaniem i nowymi technologiami. Jak się okazuje – nie jest to takie proste.

(więcej…)

DRY – KISS – YAGNI, czyli jak „doświadczeni” programiści zapominają o podstawach.

DRY – KISS – YAGNI.

Tak, tak – wszyscy programiści uwielbiają chwytliwe akronimy. Ten podziw rośnie przeważnie wraz ze stażem pracy. Co jednak zauważyłem parę miesięcy temu – z zastosowaniem reklamowanych zasad w praktyce bywa bardzo różnie.

Kolejna obserwacja jest taka, że im prostsza reguła, tym trudniej ją zachować – naprawdę niesamowita sprawa. To jest wg mnie właśnie to, co odróżnia doświadczenie od stażu pracy.

(więcej…)

C++11 #11: Inteligentne wskaźniki wchodzą do gry: std::shared_ptr, std::weak_ptr.

std::shared_ptr.

W odróżnieniu od std::unique_ptr, std::shared_ptr opiera się na współdzieleniu właśności (ang. shared ownership) przechowywanego zasobu. Z tego powodu możemy posiadać wiele inteligentnych wskaźników typu std::shared_ptr, wskazujących na ten sam obiekt w pamięci.

Ten koncept ma bardzo dużo wspólnego z realizacją automatycznego odśmiecania pamięci w innych językach programowania, ponieważ klasa std::shared_ptr ma zaimplementowany mechanizm tzw. zliczania referencji.

(więcej…)