Как я могу решить, что мой компьютер имеет порядок байтов с прямым или обратным порядком байтов по метапрограммированию шаблонов?

Я знаю способ неметапрограммирования, чтобы решить, что ПК немного порядковый или нет.

например:

#include <iostream>
#include <stdint.h>

union A {
uint16_t v;
char c[2];
};

int main(void) {
A a;
a.v = 0x0102;
std::cout << (a.c[0] == 0x01 ? "big endian" : "little endian") << std::endl;

return 0;
}

Но это дорого во время выполнения, не так ли?

Итак, есть ли способ решить, что ПК является прямым порядком байтов или нет с помощью метапрограммирования?

Спасибо!

0

Решение

В языке нет ничего, что требовало бы, чтобы целевой компьютер был исключительно байтовым или байтовым. Действительно, некоторые архитектуры допускают выбор порядка байтов программным обеспечением во время выполнения. Некоторые даже допускают выбор порядка байтов на странице.

Шаблонная метапрограмма не может ничего знать об этом материале.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]