Skip to content

Commit 50a8015

Browse files
committed
Makes BoolFlipper a subclass of BoolTester
In filter.hpp, to remove the repetitive 'using' in the similar classes
1 parent a5941ae commit 50a8015

2 files changed

Lines changed: 4 additions & 9 deletions

File tree

filter.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ namespace iter {
112112

113113
template <typename Container>
114114
class BoolTester {
115-
private:
115+
protected:
116116
using contained_iter_ret =
117117
decltype(std::declval<Container>().begin().operator*());
118118

filterfalse.hpp

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,12 @@ namespace iter {
3737
// Reverses the bool() conversion result of anything that supports a
3838
// bool conversion
3939
template <typename Container>
40-
class BoolFlipper {
40+
class BoolFlipper : public BoolTester<Container> {
4141
private:
42-
using contained_iter_type =
43-
decltype(std::declval<Container>().begin());
44-
45-
using contained_iter_ret =
46-
decltype(std::declval<contained_iter_type>().operator*());
42+
using contained_iter_ret =
43+
typename BoolTester<Container>::contained_iter_ret;
4744

4845
public:
49-
BoolFlipper() = default;
50-
BoolFlipper(const BoolFlipper &) = default;
5146
bool operator() (const contained_iter_ret item) const {
5247
return !bool(item);
5348
}

0 commit comments

Comments
 (0)