本文整理汇总了C++中Version::compare方法的典型用法代码示例。如果您正苦于以下问题:C++ Version::compare方法的具体用法?C++ Version::compare怎么用?C++ Version::compare使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Version
的用法示例。
在下文中一共展示了Version::compare方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: test
bool Dependency::test(const Version& v) const
{
int a = v.compare(this->min);
int b = v.compare(this->max);
bool low;
if (minIncluded)
low = a >= 0;
else
low = a > 0;
bool high;
if (maxIncluded)
high = b <= 0;
else
high = b < 0;
return low && high;
}
示例2: findPath_npackdcl
QString InstalledPackages::findPath_npackdcl(const Dependency& dep)
{
QString ret;
QString err;
WindowsRegistry packagesWR;
LONG e;
err = packagesWR.open(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Npackd\\Npackd\\Packages", false, KEY_READ, &e);
if (e == ERROR_FILE_NOT_FOUND || e == ERROR_PATH_NOT_FOUND) {
err = "";
} else if (err.isEmpty()) {
Version found = Version::EMPTY;
QStringList entries = packagesWR.list(&err);
for (int i = 0; i < entries.count(); ++i) {
QString name = entries.at(i);
int pos = name.lastIndexOf("-");
if (pos <= 0)
continue;
QString packageName = name.left(pos);
if (packageName != dep.package)
continue;
QString versionName = name.right(name.length() - pos - 1);
Version version;
if (!version.setVersion(versionName))
continue;
if (!dep.test(version))
continue;
if (found != Version::EMPTY) {
if (version.compare(found) < 0)
continue;
}
WindowsRegistry entryWR;
err = entryWR.open(packagesWR, name, KEY_READ);
if (!err.isEmpty())
continue;
QString p = entryWR.get("Path", &err).trimmed();
if (!err.isEmpty())
continue;
QString dir;
if (p.isEmpty())
dir = "";
else {
QDir d(p);
if (d.exists()) {
dir = p;
} else {
dir = "";
}
}
if (dir.isEmpty())
continue;
found = version;
ret = dir;
}
}
return ret;
}