필자는 템플릿 화 된 저수준 직렬화 코드를 가지고 있으며 컴파일시 시스템의 엔디안을 알아야합니다 (템플릿은 시스템의 엔디 언을 기반으로하므로).컴퓨터의 엔디안을 결정하기 위해 C++ 스타일의 컴파일 타임 어서션을 수행하는 방법이 있습니까?
지금은 몇 가지 플랫폼 정의가있는 헤더가 있지만 다소 템플릿 기반 테스트 (예 : static_assert 또는 boost_if)를 사용하여 endianness에 대한 주장을하는 것이 좋습니다. 내 코드가되는 이유는 컴파일해야 할 필요가 있고, 다양한 전문 공급 업체와 다양한 머신에서 실행되어야하며, 아마도 2008 년에는 존재하지 않는 디바이스 일 것입니다. 그래서 그 헤더 연도에 들어가야 할 것이 무엇인지 추측 할 수 없습니다 도로 아래로. 그리고 코드 기반의 수명은 약 10 년입니다. 따라서 나는 그 코드를 결코 따라갈 수 없다.
내 상황이 명확하게 이루어지기를 바랍니다.
그렇다면 공급 업체별 정의에 의존하지 않고도 엔디안을 결정할 수있는 컴파일 타임 테스트를 아는 사람이 있습니까?
고마워, 그건 좋은 속임수 야. 그리고 저는 약간의 리엔지니어링으로 그것을 적용 할 수 있다고 생각합니다. 아직 확실하지는 않지만 좋은 리드. –