#include <iostream>
using namespace std;
const int N_FORMATS = 100;
struct pixel { float r, g, b, a; };
typedef pixel (*get_pixel_func)(void* data, int x, int y);
struct format_info_struct
{
uint8_t channels;
get_pixel_func get_pixel;
};
format_info_struct format_info_AoS[N_FORMATS];
struct
{
uint8_t channels[N_FORMATS];
get_pixel_func get_pixel[N_FORMATS];
} format_info_SoA;
int main() {
cout << "Размер AoS: " << sizeof(format_info_AoS) << endl;
cout << "Размер SoA: " << sizeof(format_info_SoA) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE5fRk9STUFUUyA9IDEwMDsKCnN0cnVjdCBwaXhlbCB7IGZsb2F0IHIsIGcsIGIsIGE7IH07Cgp0eXBlZGVmIHBpeGVsICgqZ2V0X3BpeGVsX2Z1bmMpKHZvaWQqIGRhdGEsIGludCB4LCBpbnQgeSk7CgpzdHJ1Y3QgZm9ybWF0X2luZm9fc3RydWN0CnsKCXVpbnQ4X3QgY2hhbm5lbHM7CglnZXRfcGl4ZWxfZnVuYyBnZXRfcGl4ZWw7Cn07Cgpmb3JtYXRfaW5mb19zdHJ1Y3QgZm9ybWF0X2luZm9fQW9TW05fRk9STUFUU107CgpzdHJ1Y3QKewoJdWludDhfdCBjaGFubmVsc1tOX0ZPUk1BVFNdOwoJZ2V0X3BpeGVsX2Z1bmMgZ2V0X3BpeGVsW05fRk9STUFUU107Cn0gZm9ybWF0X2luZm9fU29BOwoKaW50IG1haW4oKSB7Cgljb3V0IDw8ICLQoNCw0LfQvNC10YAgQW9TOiAiIDw8IHNpemVvZihmb3JtYXRfaW5mb19Bb1MpIDw8IGVuZGw7Cgljb3V0IDw8ICLQoNCw0LfQvNC10YAgU29BOiAiIDw8IHNpemVvZihmb3JtYXRfaW5mb19Tb0EpIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==