Czy wiesz, że jesteśmy również na Slacku? Dołącz do nas już teraz klikając tutaj!

Zarządzanie zasobami w C++ #3 – RVO, NRVO i obowiązkowe RVO w C++17


2020-02-20, 00:00
Zarządzanie zasobami w C++ #3 – RVO, NRVO i obowiązkowe RVO w C++17

p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; } ... więcej

Zarządzanie zasobami w C++ #2 – semantyka przenoszenia (std::move)


2020-02-06, 00:00
Zarządzanie zasobami w C++ #2 – semantyka przenoszenia (std::move)

W drugiej części cyklu o zarządzaniu zasobami bierzemy na tapet konstrukcje, z którymi dość trudno było się oswoić programistom C++ po wprowadzeniu go do języka w 2011 roku – semantyką przenoszenia. Na początku pokażemy jednak, dlaczego zaistniała potrzeba jej wprowadzenia, poprzez objaśnienie wyraźnej luki w dotychczasowym standardzie C++. Po zrozumieniu tej potrzeby, na pewno łatwiej jest zrozumieć istotę „wynalazku”. @page { margin: 2cm } p { margin-bottom: 0.25cm; line-height: 115% } ... więcej

Zarządzanie zasobami w C++ #1 – RAII i wyjątki


2020-01-23, 00:00
Zarządzanie zasobami w C++ #1 – RAII i wyjątki

Podczas rozwoju różnych technologii proces ewolucji czasami jest na tyle duży, że mamy do czynienia z rewolucją. Z tego powodu C++ stał się odrębnym językiem w porównaniu do C. Często jest tak, że kod poprawny w C może być niepoprawny w C++. Najbardziej chyba rewolucyjną przemianą wprowadzoną do C++ są obszary zarządzania zasobami. Podejście znane z C może być nadal używane w C++, ale bądźmy szczerzy – jest to bardzo kiepski pomysł. Zobaczmy, jak dziś zarządzać zasobami w sposób poprawny i nowoczesny.... więcej

Maszyna Stanów oparta o std::variant na przykładzie gry


2019-10-09, 00:00
Maszyna Stanów oparta o std::variant na przykładzie gry

Jednym z potężniejszych wykorzystań std::variant niewątpliwie jest implementacja Maszyny Stanowej. Jakiś czas temu przygotowałem prosty przykład tego wzorca. Dzisiaj jednak mamy coś większego. W dzisiejszym wpisie przygotowanym przez Nikolai Wuttke zobaczycie, jak wykorzystać std::variant przy budowie gry kosmicznej!Poniższy wpis jest wpisem gościnnym autorstwa **Nikolai Wuttke**.... więcej

Obsługa błędów a std::optional


2019-01-24, 01:21
Obsługa błędów a std::optional

W moich poprzednich wpisach w serii C++ STL poruszyłem tematy związane z tym, jak używać std::optional. Ten opakowujący (nazywany również słownikowym) typ jest użyteczny zawsze wtedy, kiedy potrzebujemy wyrazić coś, co może nie posiadać stanu: coś co może być "puste". Na przykład możemy zwrócić std::nullopt aby poinformować, że że mamy do czynienia z błędem... ale czy aby na pewno to jest najlepszy wybór?... więcej

Refactoring z std::optional


2018-12-06, 00:48
Refactoring z std::optional

Jest wiele sytuacji, kiedy potrzebujemy wyrazić coś "opcjonalnego" - obiekt, który może posiadać wartość, lub nie. Mamy kilka możliwości implementacji tego przypadku, ale wraz ze standardem C++17 przychodzi najbardziej przydatna droga: std::optional. Dzisiaj przygotowałem jeden przypadek refactoringu, który może nauczyć nas, jak stosować tą funkcję standardu C++17.... więcej

Pssst! Używamy Cookies. Poprzez używanie naszego serwisu zgadzasz się na odczytywanie i zapisywanie Cookies w swojej przeglądarce.
Polityka Prywatności