0

私は、PCを決定するための非メタプログラミングの方法がリトルエンディアンであるかどうかを知っています。

例えば:

#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;
}

でも、実行時間は高いですね。

それで、メタプログラミングによってPCがリトルエンディアンであるかどうかを判断する方法はありますか?

ありがとう!

4

1 に答える 1

0

ターゲットコンピュータが排他的にビッグエンディアンまたは排他的にリトルエンディアンである必要がある言語には何もありません。実際、一部のアーキテクチャでは、実行時にソフトウェアによるエンディアンの選択が可能です。ページごとのエンディアンの選択を許可するものもあります。

テンプレートメタプログラムは、おそらくこのことについて何も知ることができません。

于 2012-10-13T11:35:43.610 に答える