0

ポインター演算を使用する次のコードがあり、std::span(または、おそらく) を使用して置き換えたいと考えていますgsl::span。このコードは、それぞれが連続する 4 バイトで表される多数のピクセルを繰り返し処理し、青と緑の色を更新します。

auto* row = (uint8_t*)buffer->data;
for (auto y = 0; y < buffer->height; ++y) {
    auto* pixel = (uint32_t*)row;
    for (auto x = 0; x < buffer->width; ++x) {
        auto blue = x + blueOffset;
        auto green = y + greenOffset;
        *pixel++ = ((green << 8) | blue);
    }
    row += buffer->pitch;
}

buffer->dataWindows関数のvoid*呼び出しから返されます。VirtualAlloc(...)

C++ Core GuidelinesおよびModerns C++std::spanで提案されているように、 などの安全で最新の C++ を使用するには、このコードをどのように記述できますか?

4

1 に答える 1