首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C++11或更高版本中,是否有一种方法可以在没有UB的情况下确定endian?

在C++11或更高版本中,是否有一种方法可以在没有UB的情况下确定endian?
EN

Stack Overflow用户
提问于 2015-08-25 16:57:22
回答 1查看 720关注 0票数 3

请注意,我以前发现的类似的问题在C++11和/或包含UB和/或不可能是警察之前。

不是是否有一种方法可以执行C++风格的编译时断言来确定机器的特性?或类似的dup

little endianbig endianother。至少我不需要编译other,如果可以添加other体系结构,情况就更好了。

之前曾问过公理与恩典,但不包括other,这会使other体系结构定义不正确。

基本上,我希望能够根据目标体系结构的特性专门化一个template

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-25 17:10:32

作为我的附加工作的一部分,我希望提供您所要求的内容:

附录/blob/master/endian.h.h

other将通过以下方法检测到:

代码语言:javascript
运行
复制
endian::native != endian::little && endian::native != endian::big

此标头中的第一个static_assert当前与other问题不正确,应该删除。

这个标头很容易为任何给定的平台提供。当然,它不是可移植的,因此最好由std::lib实现者来提供。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32209849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档