';

Quiz: Czy jesteś na bieżąco z C++?

Quiz: Czy jesteś na bieżąco z C++?

Zacznę od podziękowań dla pewnego użytkownika serwisu LinkedIn za udostępnienie oryginalnego kodu źródłowego. Dzięki Niall!

Przejdźmy zatem do tytułowego quizu. Na czym będzie on polegał?
Kod udostępniony przez Nialla napisany został niechlujnie, w jednym z poprzednich standardów języka C++. Zadaniem będzie przeprowadzenie recenzji kodu, wypisanie komentarzy, odnalezienie części kodu, które należy poprawić, bądź zaktualizować do standardu siedemnastego C++.

Do dzieła! Oto kod:

Ciekawe, co odnaleźliście, a o czym zapomnieliście?

Uwaga Spoiler! Moja odpowiedź…

#include <array>
#include <cstdint>

namespace had 
{

class RingBuffer final
{
public:
    enum class Status
    {
        OK, 
        EMPTY,
        FULL  
    };
    
    Status write(std::uint8_t byte);
    std::pair<std::uint8_t, Status> read() const;

private:
    static constexpr std::uint8_t BufferSize {16U};
    
    std::array<std::uint8_t, BufferSize> data;
    std::uint8_t newsetIndex {0U};
    std::uint8_t oldestIndex {0U};
};

} // namespace had
Komentarzy
Udostępnij
Piotr Tański

Wszechstronny i doświadczony programista i projektant oprogramowania. Certyfikowany programista języka C, ekspert języka C++. Prywatnie - pasjonat nowoczesnych technologii i podróży. Zwiedził już wiele miejsc na świecie i ciągle mu mało! Poza tym, fan piłki nożnej, pieszych wycieczek i muzyki rockowej. Stara się też na bieżąco poszerzać wiedzę z historii.

Skomentuj

pl_PLPolski
en_GBEnglish (UK) pl_PLPolski