/*Copyright © 2017 Hasan Yavuz ÖzderyaThis file is part of serialplot.serialplot is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.serialplot is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with serialplot. If not, see <http://www.gnu.org/licenses/>.*/#include <QRegularExpression>#include "versionnumber.h"VersionNumber::VersionNumber(unsigned mj, unsigned mn, unsigned pt){major = mj;minor = mn;patch = pt;}QString VersionNumber::toString() const{return QString("%1.%2.%3").arg(major).arg(minor).arg(patch);}bool VersionNumber::extract(const QString& str, VersionNumber& number){QRegularExpression regexp("(?:[-_vV \\t]|^)(?<major>\\d+)""(?:\\.(?<minor>\\d+))(?:\\.(?<patch>\\d+))?[-_ \\t]?");auto match = regexp.match(str, 0, QRegularExpression::PartialPreferCompleteMatch);if (!(match.hasMatch() || match.hasPartialMatch())) return false;number.major = match.captured("major").toUInt();auto zeroIfNull = [](QString str) -> unsigned{if (str.isNull()) return 0;return str.toUInt();};number.minor = zeroIfNull(match.captured("minor"));number.patch = zeroIfNull(match.captured("patch"));return true;}bool operator==(const VersionNumber& lhs, const VersionNumber& rhs){return lhs.major == rhs.major &&lhs.minor == rhs.minor &&lhs.patch == rhs.patch;}bool operator<(const VersionNumber& lhs, const VersionNumber& rhs){if (lhs.major < rhs.major){return true;}else if (lhs.major == rhs.major){if (lhs.minor < rhs.minor){return true;}else if (lhs.minor == rhs.minor){if (lhs.patch < rhs.patch) return true;}}return false;}bool operator>(const VersionNumber& lhs, const VersionNumber& rhs){if (lhs.major > rhs.major){return true;}else if (lhs.major == rhs.major){if (lhs.minor > rhs.minor){return true;}else if (lhs.minor == rhs.minor){if (lhs.patch > rhs.patch) return true;}}return false;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。