Generalized Identity Operations
template <typename T = void> struct thrust::identity;
struct thrust::identity< void >;
template <typename T = void> struct thrust::maximum;
struct thrust::maximum< void >;
template <typename T = void> struct thrust::minimum;
struct thrust::minimum< void >;
template <typename T1 = void, typename T2 = void> struct thrust::project1st;
struct thrust::project1st< void, void >;
template <typename T1 = void, typename T2 = void> struct thrust::project2nd;
struct thrust::project2nd< void, void >;