X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fstrings%2Fregmatch.h;h=8d4406a483ac19b01476a3684b73a2bde7a4e094;hb=HEAD;hp=c5116cdc5408ec7238c65f6a250feb9bc23f8308;hpb=928694ff233bd4383f30b05bf6d2d37562b77a9a;p=libs%2Fcore.git diff --git a/source/strings/regmatch.h b/source/strings/regmatch.h index c5116cd..8d4406a 100644 --- a/source/strings/regmatch.h +++ b/source/strings/regmatch.h @@ -3,6 +3,7 @@ #include #include +#include namespace Msp { @@ -16,7 +17,7 @@ part matched by the whole regex. Further groups, if present, indicate parts matched by subregexes. These are ordered from left to right, by the opening parenthesis of the subregex. */ -class RegMatch +class MSPCORE_API RegMatch { public: /** @@ -26,24 +27,21 @@ public: { typedef std::string::size_type size_type; - bool match; //< 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 + 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 - Group(): match(false) { } - operator bool() const { return match; } + explicit operator bool() const { return match; } }; - typedef std::vector GroupArray; - private: - GroupArray groups; + std::vector 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 @@ -68,7 +66,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