C++ 中可用的基本类型的事实列表;
例如,如果您要编写一个变体类型类,那么您自然需要识别该类的实例所携带的类型。 我想知道是否有人知道人们可能感兴趣的所有原始数据类型的任何官方或半官方(事实上?)参考?
只有基元,不需要像 string 或 handle 这样的抽象类型。
谢谢。
If, for example, you're going to write a variant type class, you will naturally need identification of what type an instance of that class is carrying. I'm wondering if anyone knows of any official or semi-official (de-facto?) reference of all primitive datatypes one would possibly be interested in?
Only primitives, and no need for abstract types like string or handle.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您是否考虑过让另一个图书馆承担繁重的工作?
Boost.Variant 可能可以满足您的需求,经过充分测试,类型安全且正确,而且非常高效。
或者,如果您想自己推出,请使用 Boost.TypeTraits
Have you considered letting another library do the heavy lifting?
There's Boost.Variant that probably does what you need, fully tested, typesafe and correct, and pretty efficient.
Or if you want to roll your own, use Boost.TypeTraits
唯一的官方参考是ISO/IEC 14882 C++标准。
The only official reference is the ISO/IEC 14882 C++ Standard.
谷歌搜索总是一个好的开始。 此处。 现在,提出您的实际问题。
Google Search is always a good start. Here. Now, roll out your actual question.
使用任何第三方变体。
您在标准中找不到的所有数据类型。
Use any third-party variant.
All data types you cant find in standard.
如果使用 typeid,则不需要了解有关类型的任何信息:
请注意,如果您可以接受该值是动态分配的,则可以摆脱 max_size。 我只是想表明,如果您知道最大类型的大小,就地分配也是有效的。
You don't need to know anything about types if you use typeid:
Note that you can get rid of max_size, if you can accept that the value is dynamically allocated. I just wanted to show that in place allocation works too, if you know the size of the largest type.