';

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
Recommend
Share
Tagged in
Leave a reply