Callable概念和std :: is_function类型特征之间有什么区别?

时间:2015-12-02 02:42:32

标签: c++ function function-pointers

C ++ 17将有一个Callable概念,我想知道std::is_function<T>::valuetrue的类型究竟有什么不同。它们是等价的吗?是另一个的超集吗?

1 个答案:

答案 0 :(得分:13)

  

C ++ 17将具有Callable概念

自C ++ 11以来,它就在标准中。

  

他们是等同的吗?一个是另一个的超集吗?

不,实际上,它们是完全不相交的。 Callable仅适用于对象类型,并且包括从指针到成员到具有重载operator()的类型的所有类型,其中隐式转换为函数指针本身的函数指针。

is_function仅适用于实际的函数类型,根据定义,它们不是对象类型。