cpp-pro
Pisz nowoczesny C++ z RAII, inteligentnymi wskaźnikami i algorytmami STL
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umiejętność do pisania idiomatycznego kodu C++ zgodnie z najlepszymi praktykami nowoczesnego C++. Specjalizuje się w RAII, inteligentnych wskaźnikach, semantyce move, metaprogramowaniu szablonów i optymalizacji wydajności. Pomaga w refaktoryzacji kodu, bezpieczeństwie pamięci i obsłudze złożonych wzorców C++. Wspiera standardy C++11 do C++23, generuje testy jednostkowe, benchmarki wydajności i dokumentację interfejsów szablonów.
Jak używać
Aktywuj umiejętność cpp-pro w swoim agencie lub przepływie pracy, gdy pracujesz nad zadaniami związanymi z programowaniem w C++. Umiejętność działa najlepiej z modelami Opus i wymaga kontekstu dotyczącego celów, ograniczeń i wymaganych danych wejściowych.
Opisz swoje zadanie C++, wskazując konkretny problem: refaktoryzacja istniejącego kodu, implementacja nowego modułu, optymalizacja wydajności lub rozwiązanie problemu z bezpieczeństwem pamięci. Umiejętność automatycznie zastosuje odpowiednie praktyki z zakresu nowoczesnego C++.
Otrzymasz kod źródłowy napisany zgodnie z wytycznymi C++ Core Guidelines, wraz z plikami CMakeLists.txt zawierającymi właściwy standard C++. Kod będzie zawierać nagłówki z ochroną przed wielokrotnym włączeniem lub dyrektywą #pragma once.
Zażądaj testów jednostkowych, jeśli są potrzebne — umiejętność wygeneruje testy przy użyciu Google Test lub Catch2, wraz z konfiguracją AddressSanitizer i ThreadSanitizer. Pozwoli to zweryfikować poprawność i bezpieczeństwo wątków.
Dla zadań wymagających wysokiej wydajności poproś o benchmarki wydajności przy użyciu Google Benchmark. Umiejętność zaproponuje również profilowanie za pomocą narzędzi takich jak perf lub VTune, aby zidentyfikować wąskie gardła.
Jeśli pracujesz z szablonami lub zaawansowanymi wzorcami C++, umiejętność dostarczy jasną dokumentację interfejsów szablonów i wyjaśni decyzje projektowe związane z semantyką move, perfect forwarding i metaprogramowaniem.