gpt4 book ai didi

c++ - boost type_traits is_array

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:42 24 4
gpt4 key购买 nike

我一直在尝试浏览 Boost type-traits header ,考虑到无数#define 提供的强烈不可读性,现在我感到非常恶心。然后是更多#define。

具体来说,我有兴趣弄清楚以下 3 个特征:类型 T 是数组、类还是枚举。

任何人都可以帮助建议一些破译明显疯狂背后的方法的方法吗?比如你如何从一个类型中找出特征背后的理论,任何相关的阅读 Material 等。

最佳答案

is_array 非常简单直接:

template<class T>
struct is_array{
static const bool value = false;
};

template<class T, std::size_t N>
struct is_array< T (&)[N] >{
static const bool value = true;
};

只是对数组引用类型的简单部分特化。

is_class 有点复杂,它依赖于重载解析以及类和结构拥有构造函数(或析构函数)的事实。由于我目前正在使用我的 iPod Touch,所以我无法展示示例。我会在再次访问 PC 后立即编辑一个。

is_enum 我相信依赖于编译器内部函数,所以这里没有示例。

注意:这里的一切都来自内存,我可能对枚举有误。

关于c++ - boost type_traits is_array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6128715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com