gpt4 book ai didi

c++ - 头文件中的某些实现在哪里?

转载 作者:行者123 更新时间:2023-12-03 06:53:14 25 4
gpt4 key购买 nike

我在 头文件中看到了一些实现,但是有些实现我找不到,像这样:

// STRUCT TEMPLATE is_class
template <class _Ty>
struct is_class : bool_constant<__is_class(_Ty)> {}; // determine whether _Ty is a class

template <class _Ty>
_INLINE_VAR constexpr bool is_class_v = __is_class(_Ty);

我想知道 __is_class 的实现。有人知道实现在哪里吗?我使用名为 visual studio 2019 的 IDE。

最佳答案

这些符号指的是保留的内置标记,由编译器本身识别和评估。编译器知道 __is_class 的含义,针对给定类型对其进行评估,然后使用评估结果。

碰巧 gcc 很好地记录了它的内置符号 here (这是针对 gcc 10.2 的,其他版本的 gcc 也有几乎相同的页面)。编辑:here's the same page for VS -- 从外观上看,几乎是同一回事。

在那个页面上,您会碰巧找到为 gcc 定义的 __is_class 函数。其他编译器倾向于使事情以相同的方式工作,可能仅在符号本身的名称上有所不同。

总而言之,您不会在任何头文件中找到正式定义的 __is_class 和其他内容。这些函数、类等。阿尔。被烘焙到编译器本身。

关于c++ - <type_traits> 头文件中的某些实现在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64904711/

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