]> git.tdb.fi Git - libs/core.git/blobdiff - source/strings/regmatch.h
Mark boolean conversion operators as explicit
[libs/core.git] / source / strings / regmatch.h
index 325a9b229af08caf007ccbf64ae6a2dfa2ffd876..6af309ea72185ea91e43706c1ef38538ced51976 100644 (file)
@@ -24,24 +24,23 @@ public:
        */
        struct Group
        {
-               bool match;       //< Whether or not this group matched
-               unsigned begin;   //< First offset of the match
-               unsigned end;     //< One-past-last offset
-               unsigned length;  //< Length of the match (end-begin)
-               std::string str;  //< The part of the string that matched
-
-               Group(): match(false) { }
-               operator bool() const { return match; }
-       };
+               typedef std::string::size_type size_type;
+
+               bool match = false;  //< Whether or not this group matched
+               size_type begin;     //< First offset of the match
+               size_type end;       //< One-past-last offset
+               size_type length;    //< Length of the match (end-begin)
+               std::string str;     //< The part of the string that matched
 
-       typedef std::vector<Group> GroupArray;
+               explicit operator bool() const { return match; }
+       };
 
 private:
-       GroupArray groups;
+       std::vector<Group> groups;
 
 public:
        /** Constructs a RegMatch representing a non-match. */
-       RegMatch() { }
+       RegMatch() = default;
 
        /** Constructs a new RegMatch from a string and groups.  The length and str
        members of each group are computed and need not be set.  Intended to be used
@@ -66,7 +65,7 @@ public:
        /** Shorthand for the group() function. */
        const Group &operator[](unsigned i) const { return group(i); }
 
-       operator bool() const { return !empty(); }
+       explicit operator bool() const { return !empty(); }
 };
 
 } // namespace Msp