| 60 | |
| 61 | public: |
| 62 | static void Sort(ELEM* base, const int length, SorterFunc sorter) |
| 63 | { |
| 64 | if (length < 2) |
| 65 | { |
| 66 | return; |
| 67 | } |
| 68 | |
| 69 | if (length <= std::numeric_limits<uint8_t>::max()) |
| 70 | { |
| 71 | SortImpl<uint8_t>(base, length, sorter); |
| 72 | } |
| 73 | else if (length <= std::numeric_limits<uint16_t>::max()) |
| 74 | { |
| 75 | SortImpl<uint16_t>(base, length, sorter); |
| 76 | } |
| 77 | else |
| 78 | { |
| 79 | SortImpl<uint32_t>(base, length, sorter); |
| 80 | } |
| 81 | } |
| 82 | }; |
| 83 | } |
| 84 |