我最近在查看 SGI STL 的源代码,发现它在许多地方使用了我无法理解的调用运算符,例如:
typedef typename _type_traits<T1>::is_POD_type is_POD;
_uninitialized_fill_aux(first, last, v, is_POD());
最后有一个调用操作(is_POD())。
我知道is_POD
是一种类型,它的定义如下:
struct _true_type{};
struct _false_type{};
template <class T>
struct _type_traits{
...
...
typedef _false_type is_POD_type;
};
如我所见,is_POD
是一个类型但它没有重载()
操作,那它怎么调用()
呢?</p>
这个地方的调用功能是什么意思?
非常感谢!