File size: 1,120 Bytes
7fc5a59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef OPENPOSE_UTILITIES_POINTER_CONTAINER_HPP
#define OPENPOSE_UTILITIES_POINTER_CONTAINER_HPP

namespace op
{
    template<typename TPointerContainer>
    inline bool checkNoNullNorEmpty(const TPointerContainer& tPointerContainer)
    {
        return (tPointerContainer != nullptr && tPointerContainer->size() > 0);
    }

    template<typename TDatumsSP>
    class PointerContainerGreater
    {
    public:
        bool operator() (const TDatumsSP& a, const TDatumsSP& b)
        {
            if (!b || b->empty())
                return true;
            else if (!a || a->empty())
                return false;
            else
                return *(*a)[0] > *(*b)[0];
        }
    };

    template<typename TDatumsSP>
    class PointerContainerLess
    {
    public:
        bool operator() (const TDatumsSP& a, const TDatumsSP& b)
        {
            if (!b || b->empty())
                return false;
            else if (!a || a->empty())
                return true;
            else
                return *(*a)[0] < *(*b)[0];
        }
    };
}

#endif // OPENPOSE_UTILITIES_POINTER_CONTAINER_HPP