Есть буфер, реализованный в виде
vector<uint8_t> buffer;
Есть структуры
struct Color
{
uint8_t alpha = 0;
uint8_t red = 0;
uint8_t green = 0;
uint8_t blue = 0;
};
using PaletteRef = std::span<Color>;
using BitmapRef = std::span<uint8_t>;
using TextRef = std::span<char>;
struct Content
{
PaletteRef palette;
BitmapRef bitmap;
};
Нужно писать/читать в этот буфер данные PaletteRef, BitmpaRef, TextRef.
Функция копирования имеет следующий вид
void copy_and_ref_data(Content& content, std::vector<uint8_t>& buffer, size_t& offset)
{
size_t size_to_write = content.palette.size_bytes();
if (size_to_write)
{
memcpy(buffer.data() + offset, content.palette.data(), size_to_write);
content.palette = PaletteRef((Color*)&buffer[offset], content.palette.size());
offset += size_to_write;
}
size_to_write = content.bitmap.size_bytes();
if (size_to_write)
{
memcpy(buffer.data() + offset, content.bitmap.data(), size_to_write);
content.bitmap = BitmapRef(&buffer[offset], content.bitmap.size());
offset += size_to_write;
}
}
Мне указали, что нужно корректно использовать alignof(Color). Но я не пойму как. Уже просмотрел мнгого постов на этом и не только сайте, но так и не понял, как применить и зачем alignof.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Мне нужно составить через спецификации запрос, в котором я исключу из выборки несколько ID
Использую библиотеку FrescoВыкидывает ошибку:
Есть проект на OpenJDK11 + OpenJFX11Запускал через Maven, но необходимо перейти на Gradle