Что здесь означает оператор вызова STL? - PullRequest
0 голосов
/ 09 ноября 2019

Я недавно просматривал исходный код для 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 это тип, но он не перегружен(), как он может звонить ()

Что означает функция вызова в этом месте?

Большое спасибо!

...