| 46 | // compilation of all the STL style accessors |
| 47 | template<bool members = true, typename Container1, typename Container2> |
| 48 | bool compareSequences(const Container1 &c1, const Container2 &c2) |
| 49 | { |
| 50 | bool result = true; |
| 51 | if constexpr(members) { |
| 52 | result = |
| 53 | (equal(c1.begin(), c1.end(), c2.begin(), c2.end())) |
| 54 | && |
| 55 | (equal(c1.cbegin(), c1.cend(), c2.cbegin(), c2.cend())) |
| 56 | && |
| 57 | (equal(c1.rbegin(), c1.rend(), c2.rbegin(), c2.rend())) |
| 58 | && |
| 59 | (equal(c1.crbegin(), c1.crend(), c2.crbegin(), c2.crend())); |
| 60 | } |
| 61 | result = result && |
| 62 | (equal(begin(c1), end(c1), begin(c2), end(c2))) |
| 63 | && |
| 64 | (equal(cbegin(c1), cend(c1), cbegin(c2), cend(c2))) |
| 65 | && |
| 66 | (equal(rbegin(c1), rend(c1), rbegin(c2), rend(c2))) |
| 67 | && |
| 68 | (equal(crbegin(c1), crend(c1), crbegin(c2), crend(c2))) |
| 69 | ; |
| 70 | return result; |
| 71 | } |
| 72 | } |
| 73 | |
| 74 | template<typename Container, auto Maker = nullptr, typename... Args> |