gpt4 book ai didi

c++ - std::is_function 是如何实现的?

转载 作者:行者123 更新时间:2023-12-01 08:19:24 25 4
gpt4 key购买 nike

std::is_function 的以下实现如何?

template<class T>
struct is_function : std::integral_constant<
bool,
!std::is_const<const T>::value && !std::is_reference<T>::value
> {};

(来自 CPP Reference )

在我看来, int 将是这个定义下的函数。我错过了什么?

最佳答案

让我们回顾一下出现的条件:
如果 const T 不是 const ( const 并不真正适用于函数类型,因为函数不是对象),并且 T 不是引用( const 也不适用于引用,出于同样的原因),它是一个函数类型. int(或任何其他非函数非引用类型)不适合,因为 is_const<const int>::valuetrue

根据 C++17 Standard §11.3.5 Functions / section 7 :(强调我的)

The effect of a cv-qualifier-seq in a function declarator is not the same as adding cv-qualification on top of the function type. In the latter case, the cv-qualifiers are ignored. [ Note: A function type that has a cv-qualifier-seq is not a cv-qualified type; there are no cv-qualified function types. — end note ] [...]

关于c++ - std::is_function 是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59654482/

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