以下是如何实现的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参考)
在我看来,int
在此定义下,an 将是一个函数。我想念什么?
为什么函数类型不能为const?这与可恶的类型有关吗?
—
jtbandes
@jtbandes是因为函数是C ++中不是对象的少数事物之一。
—
Ayxan
我猜是因为从某种意义上说,它始终是常量
—
RiaD
我觉得标题有误导性。“这如何有效地实现std :: is_function?” 似乎更合适。
—
瓦尔说莫妮卡
!is_const
部分。