aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@qt.io>2017-03-09 14:48:39 -0800
committerJoerg Bornemann <joerg.bornemann@qt.io>2017-03-29 14:02:39 +0000
commit3df01e970913a9d3007319519097c9e2c44478a3 (patch)
treec7153483c7c9ca1d1b1eeacedf524dd5921ffffc
parent89bd4b0e8578cf636aef8f3171327824f3c67984 (diff)
Replace all uses of QVector with std::vector
Change-Id: Idd41fc4d9819649a85739f984862bed6480fddd5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--src/app/qbs-setup-toolchains/msvcprobe.cpp47
-rw-r--r--src/lib/corelib/api/project.cpp5
-rw-r--r--src/lib/corelib/buildgraph/inputartifactscanner.cpp2
-rw-r--r--src/lib/corelib/buildgraph/qtmocscanner.cpp2
-rw-r--r--src/lib/corelib/buildgraph/rawscanresults.cpp6
-rw-r--r--src/lib/corelib/buildgraph/rawscanresults.h7
-rw-r--r--src/lib/corelib/buildgraph/rulegraph.cpp20
-rw-r--r--src/lib/corelib/buildgraph/rulegraph.h9
-rw-r--r--src/lib/corelib/buildgraph/rulesapplicator.cpp9
-rw-r--r--src/lib/corelib/generators/visualstudio/io/visualstudiosolutionwriter.cpp3
-rw-r--r--src/lib/corelib/generators/visualstudio/msbuildfiltersproject.cpp25
-rw-r--r--src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.cpp8
-rw-r--r--src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.h2
-rw-r--r--src/lib/corelib/generators/visualstudio/visualstudiogenerator.cpp6
-rw-r--r--src/lib/corelib/generators/visualstudio/visualstudiogenerator.h2
-rw-r--r--src/lib/corelib/language/language.cpp5
-rw-r--r--src/lib/corelib/language/language.h14
-rw-r--r--src/lib/corelib/language/moduleloader.cpp41
-rw-r--r--src/lib/corelib/language/moduleloader.h4
-rw-r--r--src/lib/corelib/language/modulemerger.cpp4
-rw-r--r--src/lib/corelib/language/projectresolver.cpp2
-rw-r--r--src/lib/corelib/language/tst_language.cpp4
-rw-r--r--src/lib/corelib/tools/id.cpp3
-rw-r--r--src/lib/corelib/tools/persistence.cpp2
-rw-r--r--src/lib/corelib/tools/persistence.h21
-rw-r--r--src/lib/corelib/tools/projectgeneratormanager.cpp7
-rw-r--r--src/lib/corelib/tools/set.h54
-rw-r--r--src/lib/corelib/tools/shellutils.cpp6
-rw-r--r--src/lib/corelib/tools/shellutils.h5
-rw-r--r--src/lib/corelib/tools/tst_tools.cpp15
-rw-r--r--src/lib/corelib/tools/vsenvironmentdetector.cpp21
-rw-r--r--src/lib/corelib/tools/vsenvironmentdetector.h8
-rw-r--r--tests/auto/api/tst_api.cpp12
33 files changed, 194 insertions, 187 deletions
diff --git a/src/app/qbs-setup-toolchains/msvcprobe.cpp b/src/app/qbs-setup-toolchains/msvcprobe.cpp
index 9618f0c39..760568527 100644
--- a/src/app/qbs-setup-toolchains/msvcprobe.cpp
+++ b/src/app/qbs-setup-toolchains/msvcprobe.cpp
@@ -56,7 +56,8 @@
#include <QtCore/qfileinfo.h>
#include <QtCore/qsettings.h>
#include <QtCore/qstringlist.h>
-#include <QtCore/qvector.h>
+
+#include <vector>
using namespace qbs;
using namespace qbs::Internal;
@@ -98,9 +99,9 @@ struct MSVCArchInfo
QString binPath;
};
-static QVector<MSVCArchInfo> findSupportedArchitectures(const MSVC &msvc)
+static std::vector<MSVCArchInfo> findSupportedArchitectures(const MSVC &msvc)
{
- QVector<MSVCArchInfo> result;
+ std::vector<MSVCArchInfo> result;
if (msvc.internalVsVersion.majorVersion() < 15) {
static const QStringList knownArchitectures = QStringList()
<< QStringLiteral("x86")
@@ -116,7 +117,7 @@ static QVector<MSVCArchInfo> findSupportedArchitectures(const MSVC &msvc)
ai.arch = knownArchitecture;
ai.binPath = msvc.binPathForArchitecture(knownArchitecture);
if (QFile::exists(ai.binPath + QLatin1String("/cl.exe")))
- result += ai;
+ result.push_back(ai);
}
} else {
QDir vcInstallDir(msvc.vcInstallPath);
@@ -132,7 +133,7 @@ static QVector<MSVCArchInfo> findSupportedArchitectures(const MSVC &msvc)
ai.arch = arch;
else
ai.arch = shortHostArch + QLatin1Char('_') + arch;
- result += ai;
+ result.push_back(ai);
}
}
}
@@ -154,9 +155,9 @@ struct MSVCRegistryEntry
QString installDir;
};
-static QVector<MSVCRegistryEntry> installedMSVCsFromRegistry()
+static std::vector<MSVCRegistryEntry> installedMSVCsFromRegistry()
{
- QVector<MSVCRegistryEntry> result;
+ std::vector<MSVCRegistryEntry> result;
// Detect Visual Studio
const QSettings vsRegistry(
@@ -167,7 +168,7 @@ static QVector<MSVCRegistryEntry> installedMSVCsFromRegistry()
MSVCRegistryEntry entry;
entry.version = vsName;
entry.installDir = vsRegistry.value(vsName).toString();
- result.append(entry);
+ result.push_back(entry);
}
// Detect Visual C++ Build Tools
@@ -189,7 +190,7 @@ static QVector<MSVCRegistryEntry> installedMSVCsFromRegistry()
+ QStringLiteral("\\Setup\\VC"),
QSettings::NativeFormat);
entry.installDir = vsRegistry.value(QStringLiteral("ProductDir")).toString();
- result.append(entry);
+ result.push_back(entry);
}
vcbtRegistry.endGroup();
}
@@ -197,10 +198,10 @@ static QVector<MSVCRegistryEntry> installedMSVCsFromRegistry()
return result;
}
-static QVector<MSVC> installedMSVCs()
+static std::vector<MSVC> installedMSVCs()
{
- QVector<MSVC> msvcs;
- const QVector<MSVCRegistryEntry> &registryEntries = installedMSVCsFromRegistry();
+ std::vector<MSVC> msvcs;
+ const std::vector<MSVCRegistryEntry> &registryEntries = installedMSVCsFromRegistry();
for (const MSVCRegistryEntry &registryEntry : registryEntries) {
MSVC msvc;
msvc.internalVsVersion = Version::fromString(registryEntry.version);
@@ -226,7 +227,7 @@ static QVector<MSVC> installedMSVCs()
if (!vcInstallDir.cd(QStringLiteral("bin")))
continue;
msvc.vcInstallPath = vcInstallDir.absolutePath();
- msvcs.append(msvc);
+ msvcs.push_back(msvc);
} else {
QDir vcInstallDir = vsInstallDir;
vcInstallDir.cd(QStringLiteral("Tools/MSVC"));
@@ -241,7 +242,7 @@ static QVector<MSVC> installedMSVCs()
continue;
}
msvc.vcInstallPath = specificVcInstallDir.absolutePath();
- msvcs.append(msvc);
+ msvcs.push_back(msvc);
}
}
}
@@ -253,7 +254,7 @@ void msvcProbe(Settings *settings, QList<Profile> &profiles)
qbsInfo() << Tr::tr("Detecting MSVC toolchains...");
// 1) Installed SDKs preferred over standalone Visual studio
- QVector<WinSDK> winSDKs;
+ std::vector<WinSDK> winSDKs;
WinSDK defaultWinSDK;
const QSettings sdkRegistry(QLatin1String("HKEY_LOCAL_MACHINE\\SOFTWARE") + wow6432Key()
@@ -276,7 +277,7 @@ void msvcProbe(Settings *settings, QList<Profile> &profiles)
WinSDK specificSDK = sdk;
specificSDK.architecture = ai.arch;
specificSDK.binPath = ai.binPath;
- winSDKs += specificSDK;
+ winSDKs.push_back(specificSDK);
}
}
}
@@ -289,7 +290,7 @@ void msvcProbe(Settings *settings, QList<Profile> &profiles)
}
// 2) Installed MSVCs
- QVector<MSVC> msvcs;
+ std::vector<MSVC> msvcs;
foreach (MSVC msvc, installedMSVCs()) {
if (msvc.internalVsVersion.majorVersion() < 15) {
// Check existence of various install scripts
@@ -302,7 +303,7 @@ void msvcProbe(Settings *settings, QList<Profile> &profiles)
MSVC specificMSVC = msvc;
specificMSVC.architecture = ai.arch;
specificMSVC.binPath = ai.binPath;
- msvcs += specificMSVC;
+ msvcs.push_back(specificMSVC);
}
}
@@ -312,14 +313,14 @@ void msvcProbe(Settings *settings, QList<Profile> &profiles)
QDir::toNativeSeparators(msvc.binPath));
}
- if (winSDKs.isEmpty() && msvcs.isEmpty()) {
+ if (winSDKs.empty() && msvcs.empty()) {
qbsInfo() << Tr::tr("Could not detect an installation of "
"the Windows SDK or Visual Studio.");
return;
}
qbsInfo() << Tr::tr("Detecting build environment...");
- QVector<MSVC *> msvcPtrs;
+ std::vector<MSVC *> msvcPtrs;
msvcPtrs.resize(winSDKs.size() + msvcs.size());
std::transform(winSDKs.begin(), winSDKs.end(), msvcPtrs.begin(),
[] (WinSDK &sdk) -> MSVC * { return &sdk; });
@@ -329,8 +330,7 @@ void msvcProbe(Settings *settings, QList<Profile> &profiles)
VsEnvironmentDetector envDetector;
envDetector.start(msvcPtrs);
- for (int i = 0; i < winSDKs.count(); ++i) {
- WinSDK &sdk = winSDKs[i];
+ for (WinSDK &sdk : winSDKs) {
const QString name = QLatin1String("WinSDK") + sdk.version + QLatin1Char('-')
+ sdk.architecture;
try {
@@ -341,8 +341,7 @@ void msvcProbe(Settings *settings, QList<Profile> &profiles)
}
}
- for (int i = 0; i < msvcs.count(); ++i) {
- MSVC &msvc = msvcs[i];
+ for (MSVC &msvc : msvcs) {
const QString name = QLatin1String("MSVC") + msvc.version + QLatin1Char('-')
+ msvc.architecture;
try {
diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp
index 61ee8d57e..1508c34e9 100644
--- a/src/lib/corelib/api/project.cpp
+++ b/src/lib/corelib/api/project.cpp
@@ -651,9 +651,8 @@ void ProjectPrivate::updateInternalCodeLocations(const ResolvedProjectPtr &proje
for (const RulePtr &rule : qAsConst(product->rules)) {
updateLocationIfNecessary(rule->prepareScript->location, changeLocation, lineOffset);
for (const RuleArtifactPtr &artifact : qAsConst(rule->artifacts)) {
- for (int i = 0; i < artifact->bindings.count(); ++i) {
- updateLocationIfNecessary(artifact->bindings[i].location, changeLocation,
- lineOffset);
+ for (auto &binding : artifact->bindings) {
+ updateLocationIfNecessary(binding.location, changeLocation, lineOffset);
}
}
}
diff --git a/src/lib/corelib/buildgraph/inputartifactscanner.cpp b/src/lib/corelib/buildgraph/inputartifactscanner.cpp
index 57bf9adfc..203edb0da 100644
--- a/src/lib/corelib/buildgraph/inputartifactscanner.cpp
+++ b/src/lib/corelib/buildgraph/inputartifactscanner.cpp
@@ -361,7 +361,7 @@ void InputArtifactScanner::scanWithScannerPlugin(DependencyScanner *scanner,
const QStringList &dependencies
= scanner->collectDependencies(fileToBeScanned, m_fileTagsForScanner.constData());
for (const QString &s : dependencies)
- scanResult->deps += RawScannedDependency(s);
+ scanResult->deps.push_back(RawScannedDependency(s));
}
InputArtifactScannerContext::DependencyScannerCacheItem::DependencyScannerCacheItem() : valid(false)
diff --git a/src/lib/corelib/buildgraph/qtmocscanner.cpp b/src/lib/corelib/buildgraph/qtmocscanner.cpp
index 5db9af58c..12ec66436 100644
--- a/src/lib/corelib/buildgraph/qtmocscanner.cpp
+++ b/src/lib/corelib/buildgraph/qtmocscanner.cpp
@@ -161,7 +161,7 @@ static RawScanResult runScanner(ScannerPlugin *scanner, const Artifact *artifact
if (FileInfo::exists(localFilePath))
includedFilePath = localFilePath;
}
- scanData.rawScanResult.deps += RawScannedDependency(includedFilePath);
+ scanData.rawScanResult.deps.push_back(RawScannedDependency(includedFilePath));
}
scanner->close(opaq);
diff --git a/src/lib/corelib/buildgraph/rawscanresults.cpp b/src/lib/corelib/buildgraph/rawscanresults.cpp
index a96574435..616adc964 100644
--- a/src/lib/corelib/buildgraph/rawscanresults.cpp
+++ b/src/lib/corelib/buildgraph/rawscanresults.cpp
@@ -83,7 +83,7 @@ RawScanResults::ScanData &RawScanResults::findScanData(
const DependencyScanner *scanner,
const PropertyMapConstPtr &moduleProperties)
{
- QVector<ScanData> &scanDataForFile = m_rawScanData[file->filePath()];
+ std::vector<ScanData> &scanDataForFile = m_rawScanData[file->filePath()];
const QString &scannerId = scanner->id();
for (auto it = scanDataForFile.begin(); it != scanDataForFile.end(); ++it) {
ScanData &scanData = *it;
@@ -96,8 +96,8 @@ RawScanResults::ScanData &RawScanResults::findScanData(
ScanData newScanData;
newScanData.scannerId = scannerId;
newScanData.moduleProperties = moduleProperties;
- scanDataForFile.append(std::move(newScanData));
- return scanDataForFile.last();
+ scanDataForFile.push_back(std::move(newScanData));
+ return scanDataForFile.back();
}
void RawScanResults::load(PersistentPool &pool)
diff --git a/src/lib/corelib/buildgraph/rawscanresults.h b/src/lib/corelib/buildgraph/rawscanresults.h
index ab7dceb2b..f58b5ceb5 100644
--- a/src/lib/corelib/buildgraph/rawscanresults.h
+++ b/src/lib/corelib/buildgraph/rawscanresults.h
@@ -48,7 +48,8 @@
#include <QtCore/qhash.h>
#include <QtCore/qstring.h>
-#include <QtCore/qvector.h>
+
+#include <vector>
namespace qbs {
namespace Internal {
@@ -59,7 +60,7 @@ class PersistentPool;
class RawScanResult
{
public:
- QVector<RawScannedDependency> deps;
+ std::vector<RawScannedDependency> deps;
FileTags additionalFileTags;
void load(PersistentPool &pool);
@@ -89,7 +90,7 @@ public:
void store(PersistentPool &pool) const;
private:
- QHash<QString, QVector<ScanData>> m_rawScanData;
+ QHash<QString, std::vector<ScanData>> m_rawScanData;
};
} // namespace Internal
diff --git a/src/lib/corelib/buildgraph/rulegraph.cpp b/src/lib/corelib/buildgraph/rulegraph.cpp
index b3eeb8971..9388ff3a4 100644
--- a/src/lib/corelib/buildgraph/rulegraph.cpp
+++ b/src/lib/corelib/buildgraph/rulegraph.cpp
@@ -53,15 +53,15 @@ RuleGraph::RuleGraph()
void RuleGraph::build(const Set<RulePtr> &rules, const FileTags &productFileTags)
{
QMap<FileTag, QList<const Rule *> > inputFileTagToRule;
- m_rules.reserve(rules.count());
+ m_rules.reserve(rules.size());
for (const RulePtr &rule : rules) {
for (const FileTag &fileTag : rule->collectedOutputFileTags())
m_outputFileTagToRule[fileTag].append(rule.data());
insert(rule);
}
- m_parents.resize(rules.count());
- m_children.resize(rules.count());
+ m_parents.resize(rules.size());
+ m_children.resize(rules.size());
for (const RuleConstPtr &rule : qAsConst(m_rules)) {
FileTags inFileTags = rule->inputs;
@@ -101,7 +101,7 @@ void RuleGraph::dump() const
printf("---rule graph dump:\n");
Set<int> rootRules;
for (const RuleConstPtr &rule : qAsConst(m_rules))
- if (m_parents[rule->ruleGraphId].isEmpty())
+ if (m_parents[rule->ruleGraphId].empty())
rootRules += rule->ruleGraphId;
for (int idx : qAsConst(rootRules))
dump_impl(indent, idx);
@@ -122,21 +122,21 @@ void RuleGraph::dump_impl(QByteArray &indent, int rootIndex) const
int RuleGraph::insert(const RulePtr &rule)
{
- rule->ruleGraphId = m_rules.count();
- m_rules.append(rule);
+ rule->ruleGraphId = m_rules.size();
+ m_rules.push_back(rule);
return rule->ruleGraphId;
}
void RuleGraph::connect(const Rule *creatingRule, const Rule *consumingRule)
{
- int maxIndex = qMax(creatingRule->ruleGraphId, consumingRule->ruleGraphId);
- if (m_parents.count() <= maxIndex) {
+ int maxIndex = std::max(creatingRule->ruleGraphId, consumingRule->ruleGraphId);
+ if (static_cast<int>(m_parents.size()) <= maxIndex) {
const int c = maxIndex + 1;
m_parents.resize(c);
m_children.resize(c);
}
- m_parents[consumingRule->ruleGraphId].append(creatingRule->ruleGraphId);
- m_children[creatingRule->ruleGraphId].append(consumingRule->ruleGraphId);
+ m_parents[consumingRule->ruleGraphId].push_back(creatingRule->ruleGraphId);
+ m_children[creatingRule->ruleGraphId].push_back(consumingRule->ruleGraphId);
}
void RuleGraph::traverse(RuleGraphVisitor *visitor, const RuleConstPtr &parentRule,
diff --git a/src/lib/corelib/buildgraph/rulegraph.h b/src/lib/corelib/buildgraph/rulegraph.h
index 074e7034d..7338ae746 100644
--- a/src/lib/corelib/buildgraph/rulegraph.h
+++ b/src/lib/corelib/buildgraph/rulegraph.h
@@ -47,7 +47,8 @@
#include <QtCore/qlist.h>
#include <QtCore/qmap.h>
#include <QtCore/qstring.h>
-#include <QtCore/qvector.h>
+
+#include <vector>
namespace qbs {
namespace Internal {
@@ -78,9 +79,9 @@ private:
private:
QMap<FileTag, QList<const Rule*> > m_outputFileTagToRule;
- QVector<RulePtr> m_rules;
- QVector< QVector<int> > m_parents;
- QVector< QVector<int> > m_children;
+ std::vector<RulePtr> m_rules;
+ std::vector< std::vector<int> > m_parents;
+ std::vector< std::vector<int> > m_children;
Set<int> m_rootRules;
};
diff --git a/src/lib/corelib/buildgraph/rulesapplicator.cpp b/src/lib/corelib/buildgraph/rulesapplicator.cpp
index af1af3900..1aaf38fa0 100644
--- a/src/lib/corelib/buildgraph/rulesapplicator.cpp
+++ b/src/lib/corelib/buildgraph/rulesapplicator.cpp
@@ -222,7 +222,7 @@ void RulesApplicator::doApply(const ArtifactSet &inputArtifacts, QScriptValue &p
engine()->setGlobalObject(prepareScriptContext);
for (int i = ruleArtifactArtifactMap.count(); --i >= 0;) {
const RuleArtifact *ra = ruleArtifactArtifactMap.at(i).first;
- if (ra->bindings.isEmpty())
+ if (ra->bindings.empty())
continue;
// expose attributes of this artifact
@@ -236,8 +236,7 @@ void RulesApplicator::doApply(const ArtifactSet &inputArtifacts, QScriptValue &p
QVariantMap artifactModulesCfg = outputArtifact->properties->value()
.value(QLatin1String("modules")).toMap();
- for (int i=0; i < ra->bindings.count(); ++i) {
- const RuleArtifact::Binding &binding = ra->bindings.at(i);
+ for (const auto &binding : ra->bindings) {
scriptValue = engine()->evaluate(binding.code);
if (Q_UNLIKELY(engine()->hasErrorOrException(scriptValue))) {
QString msg = QLatin1String("evaluating rule binding '%1': %2");
@@ -332,8 +331,8 @@ Artifact *RulesApplicator::createOutputArtifact(const QString &filePath, const F
throw ErrorInfo(e);
}
if (transformer && !m_rule->multiplex && transformer->inputs != inputArtifacts) {
- QBS_CHECK(inputArtifacts.count() == 1);
- QBS_CHECK(transformer->inputs.count() == 1);
+ QBS_CHECK(inputArtifacts.size() == 1);
+ QBS_CHECK(transformer->inputs.size() == 1);
ErrorInfo error(Tr::tr("Conflicting instances of rule '%1':").arg(m_rule->toString()),
m_rule->prepareScript->location);
error.append(Tr::tr("Output artifact '%1' is to be produced from input "
diff --git a/src/lib/corelib/generators/visualstudio/io/visualstudiosolutionwriter.cpp b/src/lib/corelib/generators/visualstudio/io/visualstudiosolutionwriter.cpp
index 0621fe97c..99180e2e2 100644
--- a/src/lib/corelib/generators/visualstudio/io/visualstudiosolutionwriter.cpp
+++ b/src/lib/corelib/generators/visualstudio/io/visualstudiosolutionwriter.cpp
@@ -44,7 +44,8 @@
#include <QtCore/qfileinfo.h>
#include <QtCore/qtextstream.h>
#include <QtCore/quuid.h>
-#include <QtCore/qvector.h>
+
+#include <vector>
namespace qbs {
diff --git a/src/lib/corelib/generators/visualstudio/msbuildfiltersproject.cpp b/src/lib/corelib/generators/visualstudio/msbuildfiltersproject.cpp
index c1a60e919..45a09236a 100644
--- a/src/lib/corelib/generators/visualstudio/msbuildfiltersproject.cpp
+++ b/src/lib/corelib/generators/visualstudio/msbuildfiltersproject.cpp
@@ -40,7 +40,8 @@
#include <tools/set.h>
#include <QtCore/qfileinfo.h>
-#include <QtCore/qvector.h>
+
+#include <vector>
namespace qbs {
@@ -72,12 +73,10 @@ static QStringList headerFileExtensions()
<< QStringLiteral("h++");
}
-static QVector<MSBuildFilter *> defaultItemGroupFilters(IMSBuildItemGroup *parent = 0)
+static std::vector<MSBuildFilter *> defaultItemGroupFilters(IMSBuildItemGroup *parent = 0)
{
- const auto filters = QVector<MSBuildFilter *> {
- new MSBuildFilter(QStringLiteral("Source Files"), sourceFileExtensions(), parent),
- new MSBuildFilter(QStringLiteral("Header Files"), headerFileExtensions(), parent)
- };
+ const auto sourceFilter = new MSBuildFilter(QStringLiteral("Source Files"), sourceFileExtensions(), parent);
+ const auto headerFilter = new MSBuildFilter(QStringLiteral("Header Files"), headerFileExtensions(), parent);
const auto formFilter = new MSBuildFilter(QStringLiteral("Form Files"),
QStringList() << QStringLiteral("ui"), parent);
@@ -94,12 +93,9 @@ static QVector<MSBuildFilter *> defaultItemGroupFilters(IMSBuildItemGroup *paren
QStringList() << QStringLiteral("ts"), parent);
translationFilter->setParseFiles(false);
- return QVector<MSBuildFilter *>()
- << filters
- << formFilter
- << resourceFilter
- << generatedFilter
- << translationFilter;
+ return std::vector<MSBuildFilter *> {
+ sourceFilter, headerFilter, formFilter, resourceFilter, generatedFilter, translationFilter
+ };
}
static bool matchesFilter(const MSBuildFilter *filter, const QString &filePath)
@@ -132,14 +128,11 @@ MSBuildFiltersProject::MSBuildFiltersProject(const GeneratableProductData &produ
allFiles.unite(Internal::Set<QString>::fromList(groupData.allFilePaths()));
}
- auto allFilesSorted = allFiles.toList();
- std::sort(allFilesSorted.begin(), allFilesSorted.end());
-
MSBuildItemGroup *headerFilesGroup = nullptr;
MSBuildItemGroup *sourceFilesGroup = nullptr;
MSBuildItemGroup *filesGroup = nullptr;
- for (const auto &filePath : allFilesSorted) {
+ for (const auto &filePath : allFiles) {
MSBuildFileItem *fileItem = nullptr;
for (const MSBuildFilter *options : filterOptions) {
diff --git a/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.cpp b/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.cpp
index 36574040e..1e4f5fd01 100644
--- a/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.cpp
+++ b/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.cpp
@@ -29,9 +29,9 @@
****************************************************************************/
#include "visualstudiosolutionglobalsection.h"
-#include <QtCore/qvector.h>
#include <utility>
+#include <vector>
namespace qbs {
@@ -39,7 +39,7 @@ class VisualStudioSolutionGlobalSectionPrivate
{
public:
QString name;
- QVector<std::pair<QString, QString>> properties;
+ std::vector<std::pair<QString, QString>> properties;
bool post = false;
};
@@ -75,14 +75,14 @@ void VisualStudioSolutionGlobalSection::setPost(bool post)
d->post = post;
}
-QVector<std::pair<QString, QString> > VisualStudioSolutionGlobalSection::properties() const
+std::vector<std::pair<QString, QString> > VisualStudioSolutionGlobalSection::properties() const
{
return d->properties;
}
void VisualStudioSolutionGlobalSection::appendProperty(const QString &key, const QString &value)
{
- d->properties.append({ key, value });
+ d->properties.push_back({ key, value });
}
} // namespace qbs
diff --git a/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.h b/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.h
index e4d3d7176..dd821fce0 100644
--- a/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.h
+++ b/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.h
@@ -52,7 +52,7 @@ public:
bool isPost() const;
void setPost(bool post);
- QVector<std::pair<QString, QString> > properties() const;
+ std::vector<std::pair<QString, QString> > properties() const;
void appendProperty(const QString &key, const QString &value);
private:
diff --git a/src/lib/corelib/generators/visualstudio/visualstudiogenerator.cpp b/src/lib/corelib/generators/visualstudio/visualstudiogenerator.cpp
index cb3698e92..ea621b271 100644
--- a/src/lib/corelib/generators/visualstudio/visualstudiogenerator.cpp
+++ b/src/lib/corelib/generators/visualstudio/visualstudiogenerator.cpp
@@ -292,12 +292,12 @@ void VisualStudioGenerator::generate()
d->reset();
}
-QVector<QSharedPointer<ProjectGenerator> > VisualStudioGenerator::createGeneratorList()
+std::vector<QSharedPointer<ProjectGenerator> > VisualStudioGenerator::createGeneratorList()
{
- QVector<QSharedPointer<ProjectGenerator> > result;
+ std::vector<QSharedPointer<ProjectGenerator> > result;
for (const auto &info : VisualStudioVersionInfo::knownVersions()) {
if (info.usesMsBuild())
- result << QSharedPointer<ProjectGenerator>(new VisualStudioGenerator(info));
+ result.push_back(QSharedPointer<ProjectGenerator>(new VisualStudioGenerator(info)));
}
return result;
}
diff --git a/src/lib/corelib/generators/visualstudio/visualstudiogenerator.h b/src/lib/corelib/generators/visualstudio/visualstudiogenerator.h
index 43c6709a7..b8e9ad2ae 100644
--- a/src/lib/corelib/generators/visualstudio/visualstudiogenerator.h
+++ b/src/lib/corelib/generators/visualstudio/visualstudiogenerator.h
@@ -61,7 +61,7 @@ public:
QString generatorName() const override;
void generate() override;
- static QVector<QSharedPointer<ProjectGenerator> > createGeneratorList();
+ static std::vector<QSharedPointer<ProjectGenerator> > createGeneratorList();
private:
virtual void visitProject(const GeneratableProject &project) override;
diff --git a/src/lib/corelib/language/language.cpp b/src/lib/corelib/language/language.cpp
index 60b5f06ac..177427fcf 100644
--- a/src/lib/corelib/language/language.cpp
+++ b/src/lib/corelib/language/language.cpp
@@ -1088,7 +1088,7 @@ void SourceWildCards::expandPatterns(Set<QString> &result, const GroupConstPtr &
if (baseDir.startsWith(buildDir))
return;
- dirTimeStamps << std::make_pair(baseDir, FileInfo(baseDir).lastModified());
+ dirTimeStamps.push_back({ baseDir, FileInfo(baseDir).lastModified() });
QStringList changed_parts = parts;
bool recursive = false;
@@ -1223,7 +1223,8 @@ bool operator==(const RuleArtifact &a1, const RuleArtifact &a2)
return a1.filePath == a2.filePath
&& a1.fileTags == a2.fileTags
&& a1.alwaysUpdated == a2.alwaysUpdated
- && a1.bindings.toList().toSet() == a2.bindings.toList().toSet();
+ && Set<RuleArtifact::Binding>::fromStdVector(a1.bindings) ==
+ Set<RuleArtifact::Binding>::fromStdVector(a2.bindings);
}
bool operator==(const RuleArtifact::Binding &b1, const RuleArtifact::Binding &b2)
diff --git a/src/lib/corelib/language/language.h b/src/lib/corelib/language/language.h
index 5425b68e0..2943996c8 100644
--- a/src/lib/corelib/language/language.h
+++ b/src/lib/corelib/language/language.h
@@ -166,9 +166,19 @@ public:
void store(PersistentPool &pool) const;
void load(PersistentPool &pool);
+
+ bool operator<(const Binding &other) const
+ {
+ if (name == other.name) {
+ if (code == other.code)
+ return location < other.location;
+ return code < other.code;
+ }
+ return name < other.name;
+ }
};
- QVector<Binding> bindings;
+ std::vector<Binding> bindings;
private:
RuleArtifact()
@@ -226,7 +236,7 @@ public:
QStringList patterns;
QStringList excludePatterns;
- QVector<std::pair<QString, FileTime>> dirTimeStamps;
+ std::vector<std::pair<QString, FileTime>> dirTimeStamps;
QList<SourceArtifactPtr> files;
private:
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp
index fa4a3e25f..1ec32338e 100644
--- a/src/lib/corelib/language/moduleloader.cpp
+++ b/src/lib/corelib/language/moduleloader.cpp
@@ -125,10 +125,9 @@ public:
QHash<QString, ProductContext *> productsMap;
QList<ProductContext *> allProducts;
for (ProjectContext * const projectContext : qAsConst(m_tlp.projects)) {
- QVector<ProductContext> &products = projectContext->products;
- for (auto prodIt = products.begin(); prodIt != products.end(); ++prodIt) {
- allProducts << prodIt;
- productsMap.insert(prodIt->name, prodIt);
+ for (auto &product : projectContext->products) {
+ allProducts.push_back(&product);
+ productsMap.insert(product.name, &product);
}
}
Set<ProductContext *> allDependencies;
@@ -140,7 +139,7 @@ public:
QBS_CHECK(!dep.name.isEmpty());
ProductContext * const depProduct = productsMap.value(dep.name);
QBS_CHECK(depProduct);
- productDependencies << depProduct;
+ productDependencies.push_back(depProduct);
allDependencies << depProduct;
}
}
@@ -190,7 +189,7 @@ private:
}
TopLevelProjectContext &m_tlp;
- QHash<ProductContext *, QVector<ProductContext *>> m_dependencyMap;
+ QHash<ProductContext *, std::vector<ProductContext *>> m_dependencyMap;
Set<ProductContext *> m_seenProducts;
QList<ProductContext *> m_sortedProducts;
};
@@ -508,7 +507,7 @@ void ModuleLoader::handleProject(ModuleLoaderResult *loadResult,
delete p;
return;
}
- topLevelProjectContext->projects << &projectContext;
+ topLevelProjectContext->projects.push_back(&projectContext);
m_reader->pushExtraSearchPaths(readExtraSearchPaths(projectItem)
<< projectItem->file()->dirPath());
projectContext.searchPathsStack = m_reader->extraSearchPathsStack();
@@ -692,7 +691,7 @@ void ModuleLoader::prepareProduct(ProjectContext *projectContext, Item *productI
setScopeForDescendants(productItem, productContext.scope);
- projectContext->products << productContext;
+ projectContext->products.push_back(productContext);
}
void ModuleLoader::setupProductDependencies(ProductContext *productContext)
@@ -727,7 +726,7 @@ static void createSortedModuleList(const Item::Module &parentModule, Item::Modul
return;
for (const Item::Module &dep : parentModule.item->modules())
createSortedModuleList(dep, modules);
- modules << parentModule;
+ modules.push_back(parentModule);
return;
}
@@ -1132,12 +1131,12 @@ void ModuleLoader::printProfilingInfo()
void ModuleLoader::mergeExportItems(const ProductContext &productContext)
{
- QVector<Item *> exportItems;
+ std::vector<Item *> exportItems;
QList<Item *> children = productContext.item->children();
for (int i = 0; i < children.count();) {
Item * const child = children.at(i);
if (child->type() == ItemType::Export) {
- exportItems << child;
+ exportItems.push_back(child);
children.removeAt(i);
} else {
++i;
@@ -1147,7 +1146,7 @@ void ModuleLoader::mergeExportItems(const ProductContext &productContext)
// Note that we do not return if there are no Export items: The "merged" item becomes the
// "product module", which always needs to exist, regardless of whether the product sources
// actually contain an Export item or not.
- if (!exportItems.isEmpty())
+ if (!exportItems.empty())
productContext.item->setChildren(children);
Item *merged = Item::create(productContext.item->pool(), ItemType::Export);
@@ -1178,10 +1177,10 @@ void ModuleLoader::mergeExportItems(const ProductContext &productContext)
mergeProperty(merged, it.key(), it.value());
}
}
- merged->setFile(exportItems.isEmpty()
- ? productContext.item->file() : exportItems.last()->file());
- merged->setLocation(exportItems.isEmpty()
- ? productContext.item->location() : exportItems.last()->location());
+ merged->setFile(exportItems.empty()
+ ? productContext.item->file() : exportItems.back()->file());
+ merged->setLocation(exportItems.empty()
+ ? productContext.item->location() : exportItems.back()->location());
Item::addChild(productContext.item, merged);
merged->setupForBuiltinType(m_logger);
ProductModuleInfo &pmi
@@ -2428,7 +2427,7 @@ void ModuleLoader::overrideItemProperties(Item *item, const QString &buildConfig
}
}
-static void collectAllModules(Item *item, QVector<Item::Module> *modules)
+static void collectAllModules(Item *item, std::vector<Item::Module> *modules)
{
for (const Item::Module &m : item->modules()) {
auto it = std::find_if(modules->begin(), modules->end(),
@@ -2440,14 +2439,14 @@ static void collectAllModules(Item *item, QVector<Item::Module> *modules)
it->versionRange.narrowDown(m.versionRange);
continue;
}
- modules->append(m);
+ modules->push_back(m);
collectAllModules(m.item, modules);
}
}
-static QVector<Item::Module> allModules(Item *item)
+static std::vector<Item::Module> allModules(Item *item)
{
- QVector<Item::Module> lst;
+ std::vector<Item::Module> lst;
collectAllModules(item, &lst);
return lst;
}
@@ -2456,7 +2455,7 @@ void ModuleLoader::addTransitiveDependencies(ProductContext *ctx)
{
if (m_logger.traceEnabled())
m_logger.qbsTrace() << "[MODLDR] addTransitiveDependencies";
- QVector<Item::Module> transitiveDeps = allModules(ctx->item);
+ std::vector<Item::Module> transitiveDeps = allModules(ctx->item);
std::sort(transitiveDeps.begin(), transitiveDeps.end());
for (const Item::Module &m : ctx->item->modules()) {
if (m.isProduct) {
diff --git a/src/lib/corelib/language/moduleloader.h b/src/lib/corelib/language/moduleloader.h
index fb1fbb48a..1359b454e 100644
--- a/src/lib/corelib/language/moduleloader.h
+++ b/src/lib/corelib/language/moduleloader.h
@@ -165,7 +165,7 @@ private:
public:
TopLevelProjectContext *topLevelProject;
ModuleLoaderResult *result;
- QVector<ProductContext> products;
+ std::vector<ProductContext> products;
QStack<QStringList> searchPathsStack;
};
@@ -184,7 +184,7 @@ private:
TopLevelProjectContext() {}
~TopLevelProjectContext() { qDeleteAll(projects); }
- QVector<ProjectContext *> projects;
+ std::vector<ProjectContext *> projects;
QHash<QString, ProductModuleInfo> productModules;
QList<ProbeConstPtr> probes;
QString buildDirectory;
diff --git a/src/lib/corelib/language/modulemerger.cpp b/src/lib/corelib/language/modulemerger.cpp
index c161aea10..578c0dc12 100644
--- a/src/lib/corelib/language/modulemerger.cpp
+++ b/src/lib/corelib/language/modulemerger.cpp
@@ -164,11 +164,11 @@ Item::PropertyMap ModuleMerger::dfs(const Item::Module &m, Item::PropertyMap pro
outprops.reserve(numberOfOutprops);
for (const Item::Module &dep : m.item->modules()) {
if (dep.item != moduleInstance)
- outprops << dfs(dep, props);
+ outprops.push_back(dfs(dep, props));
}
if (!outprops.empty()) {
- props = outprops.at(0);
+ props = outprops.front();
for (size_t i = 1; i < outprops.size(); ++i)
mergeOutProps(&props, outprops.at(i));
}
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp
index dfee668df..5265c6d2e 100644
--- a/src/lib/corelib/language/projectresolver.cpp
+++ b/src/lib/corelib/language/projectresolver.cpp
@@ -893,7 +893,7 @@ void ProjectResolver::resolveRuleArtifactBinding(const RuleArtifactPtr &ruleArti
rab.name = name;
rab.code = sourceCodeForEvaluation(sourceValue);
rab.location = sourceValue->location();
- ruleArtifact->bindings += rab;
+ ruleArtifact->bindings.push_back(rab);
} else {
QBS_ASSERT(!"unexpected value type", continue);
}
diff --git a/src/lib/corelib/language/tst_language.cpp b/src/lib/corelib/language/tst_language.cpp
index f004e4992..151457872 100644
--- a/src/lib/corelib/language/tst_language.cpp
+++ b/src/lib/corelib/language/tst_language.cpp
@@ -63,9 +63,9 @@
#include <tools/settings.h>
#include <QtCore/qprocess.h>
-#include <QtCore/qvector.h>
#include <algorithm>
+#include <vector>
Q_DECLARE_METATYPE(QList<bool>)
@@ -1534,7 +1534,7 @@ void TestLanguage::nonRequiredProducts()
.toStringList();
QCOMPARE(subProjectEnabled && dependeeEnabled, defines.contains("WITH_DEPENDEE"));
- for (const auto &name : QVector<const char *>({ "p3", "p2", "p1"})) {
+ for (const auto &name : std::vector<const char *>({ "p3", "p2", "p1"})) {
const ResolvedProductConstPtr &product = products.value(name);
QVERIFY2(product, name);
QVERIFY2(!product->enabled, name);
diff --git a/src/lib/corelib/tools/id.cpp b/src/lib/corelib/tools/id.cpp
index 2c28f53e5..e2e0cf5f5 100644
--- a/src/lib/corelib/tools/id.cpp
+++ b/src/lib/corelib/tools/id.cpp
@@ -42,7 +42,8 @@
#include <QtCore/qbytearray.h>
#include <QtCore/qhash.h>
-#include <QtCore/qvector.h>
+
+#include <vector>
namespace qbs {
namespace Internal {
diff --git a/src/lib/corelib/tools/persistence.cpp b/src/lib/corelib/tools/persistence.cpp
index 8330dfe13..0d7b1a3a8 100644
--- a/src/lib/corelib/tools/persistence.cpp
+++ b/src/lib/corelib/tools/persistence.cpp
@@ -239,7 +239,7 @@ QString PersistentPool::loadString(int id)
QBS_CHECK(id >= 0);
- if (id >= m_stringStorage.count()) {
+ if (id >= static_cast<int>(m_stringStorage.size())) {
QString s;
m_stream >> s;
m_stringStorage.resize(id + 1);
diff --git a/src/lib/corelib/tools/persistence.h b/src/lib/corelib/tools/persistence.h
index 3fade2d29..8efd5431d 100644
--- a/src/lib/corelib/tools/persistence.h
+++ b/src/lib/corelib/tools/persistence.h
@@ -49,9 +49,9 @@
#include <QtCore/qsharedpointer.h>
#include <QtCore/qstring.h>
#include <QtCore/qvariant.h>
-#include <QtCore/qvector.h>
#include <type_traits>
+#include <vector>
namespace qbs {
namespace Internal {
@@ -112,12 +112,12 @@ private:
QDataStream m_stream;
HeadData m_headData;
- QVector<PersistentObject *> m_loadedRaw;
- QVector<QSharedPointer<PersistentObject> > m_loaded;
+ std::vector<PersistentObject *> m_loadedRaw;
+ std::vector<QSharedPointer<PersistentObject> > m_loaded;
QHash<const PersistentObject *, int> m_storageIndices;
PersistentObjectId m_lastStoredObjectId;
- QVector<QString> m_stringStorage;
+ std::vector<QString> m_stringStorage;
QHash<QString, int> m_inverseStringStorage;
PersistentObjectId m_lastStoredStringId;
Logger &m_logger;
@@ -131,14 +131,14 @@ template <typename T> inline T *PersistentPool::idLoad()
if (id < 0)
return 0;
- if (id < m_loadedRaw.count()) {
- PersistentObject *obj = m_loadedRaw.value(id);
+ if (id < static_cast<PersistentObjectId>(m_loadedRaw.size())) {
+ PersistentObject *obj = m_loadedRaw.at(id);
return dynamic_cast<T*>(obj);
}
- int i = m_loadedRaw.count();
+ auto i = m_loadedRaw.size();
m_loadedRaw.resize(id + 1);
- for (; i < m_loadedRaw.count(); ++i)
+ for (; i < m_loadedRaw.size(); ++i)
m_loadedRaw[i] = 0;
T * const t = new T;
@@ -156,8 +156,8 @@ template <class T> inline QSharedPointer<T> PersistentPool::idLoadS()
if (id < 0)
return QSharedPointer<T>();
- if (id < m_loaded.count()) {
- QSharedPointer<PersistentObject> obj = m_loaded.value(id);
+ if (id < static_cast<PersistentObjectId>(m_loaded.size())) {
+ QSharedPointer<PersistentObject> obj = m_loaded.at(id);
return obj.dynamicCast<T>();
}
@@ -281,7 +281,6 @@ template<typename T> struct PersistentPool::Helper<QFlags<T>>
template<typename T> struct IsSimpleContainer { static const bool value = false; };
template<> struct IsSimpleContainer<QStringList> { static const bool value = true; };
-template<typename T> struct IsSimpleContainer<QVector<T>> { static const bool value = true; };
template<typename T> struct IsSimpleContainer<QList<T>> { static const bool value = true; };
template<typename T> struct IsSimpleContainer<std::vector<T>> { static const bool value = true; };
diff --git a/src/lib/corelib/tools/projectgeneratormanager.cpp b/src/lib/corelib/tools/projectgeneratormanager.cpp
index d59fa1bd5..a417be5e2 100644
--- a/src/lib/corelib/tools/projectgeneratormanager.cpp
+++ b/src/lib/corelib/tools/projectgeneratormanager.cpp
@@ -72,9 +72,10 @@ ProjectGeneratorManager *ProjectGeneratorManager::instance()
ProjectGeneratorManager::ProjectGeneratorManager()
{
- QVector<QSharedPointer<ProjectGenerator> > generators;
- generators << QSharedPointer<ClangCompilationDatabaseGenerator>::create();
- generators << qbs::VisualStudioGenerator::createGeneratorList();
+ std::vector<QSharedPointer<ProjectGenerator> > generators;
+ generators.push_back(QSharedPointer<ClangCompilationDatabaseGenerator>::create());
+ const auto vsGenerators = qbs::VisualStudioGenerator::createGeneratorList();
+ std::copy(vsGenerators.cbegin(), vsGenerators.cend(), std::back_inserter(generators));
for (QSharedPointer<ProjectGenerator> generator : qAsConst(generators))
m_generators[generator->generatorName()] = generator;
}
diff --git a/src/lib/corelib/tools/set.h b/src/lib/corelib/tools/set.h
index f299ec71e..2229ebd4b 100644
--- a/src/lib/corelib/tools/set.h
+++ b/src/lib/corelib/tools/set.h
@@ -68,17 +68,17 @@ template<typename T> struct SortAfterLoad<QSharedPointer<T>> { static const bool
template<typename T> class Set
{
public:
- using const_iterator = typename QVector<T>::const_iterator;
- using iterator = typename QVector<T>::iterator;
- using reverse_iterator = typename QVector<T>::reverse_iterator;
- using const_reverse_iterator = typename QVector<T>::const_reverse_iterator;
- using size_type = typename QVector<T>::size_type;
+ using const_iterator = typename std::vector<T>::const_iterator;
+ using iterator = typename std::vector<T>::iterator;
+ using reverse_iterator = typename std::vector<T>::reverse_iterator;
+ using const_reverse_iterator = typename std::vector<T>::const_reverse_iterator;
+ using size_type = typename std::vector<T>::size_type;
using value_type = T;
- using difference_type = typename QVector<T>::difference_type;
- using pointer = typename QVector<T>::pointer;
- using const_pointer = typename QVector<T>::const_pointer;
- using reference = typename QVector<T>::reference;
- using const_reference = typename QVector<T>::const_reference;
+ using difference_type = typename std::vector<T>::difference_type;
+ using pointer = typename std::vector<T>::pointer;
+ using const_pointer = typename std::vector<T>::const_pointer;
+ using reference = typename std::vector<T>::reference;
+ using const_reference = typename std::vector<T>::const_reference;
iterator begin() { return m_data.begin(); }
iterator end() { return m_data.end(); }
@@ -119,7 +119,7 @@ public:
bool contains(const T &v) const { return std::binary_search(cbegin(), cend(), v); }
bool contains(const Set<T> &other) const;
bool isEmpty() const { return m_data.empty(); }
- int count() const { return m_data.count(); }
+ int count() const { return m_data.size(); }
int size() const { return count(); }
int capacity() const { return m_data.capacity(); }
bool intersects(const Set<T> &other) const;
@@ -140,9 +140,10 @@ public:
QString toString(const T& value) const { return value.toString(); }
QString toString() const;
+ static Set<T> fromStdVector(const std::vector<T> &vector);
static Set<T> fromList(const QList<T> &list);
static Set<T> fromStdSet(const std::set<T> &set);
- QList<T> toList() const { return m_data.toList(); }
+ QList<T> toList() const;
std::set<T> toStdSet() const;
template<typename U> static Set<T> filtered(const Set<U> &s);
@@ -160,7 +161,7 @@ private:
bool sortAfterLoadRequired() const { return helper::SortAfterLoad<T>::required; }
iterator asMutableIterator(const_iterator cit);
- QVector<T> m_data;
+ std::vector<T> m_data;
};
template<typename T> Set<T>::Set(const std::initializer_list<T> &list) : m_data(list)
@@ -239,7 +240,7 @@ template<typename T> Set<T> &Set<T>::unite(const Set<T> &other)
for (auto otherIt = other.cbegin(); otherIt != other.cend(); ++otherIt) {
lowerBound = std::lower_bound(lowerBound, m_data.end(), *otherIt);
if (lowerBound == m_data.end()) {
- m_data.reserve(count() + std::distance(otherIt, other.cend()));
+ m_data.reserve(size() + std::distance(otherIt, other.cend()));
std::copy(otherIt, other.cend(), std::back_inserter(m_data));
return *this;
}
@@ -265,7 +266,7 @@ template<typename T> void Set<T>::load(PersistentPool &pool)
int i = pool.load<int>();
reserve(i);
for (; --i >= 0;)
- m_data << loadElem(pool);
+ m_data.push_back(loadElem(pool));
if (sortAfterLoadRequired())
sort();
}
@@ -294,10 +295,18 @@ template<typename T> QString Set<T>::toString() const
return QLatin1Char('[') + toStringList().join(QLatin1String(", ")) + QLatin1Char(']');
}
+template<typename T> Set<T> Set<T>::fromStdVector(const std::vector<T> &vector)
+{
+ Set<T> s;
+ std::copy(vector.cbegin(), vector.cend(), std::back_inserter(s.m_data));
+ s.sort();
+ return s;
+}
+
template<typename T> Set<T> Set<T>::fromList(const QList<T> &list)
{
Set<T> s;
- s.m_data = QVector<T>::fromList(list);
+ std::copy(list.cbegin(), list.cend(), std::back_inserter(s.m_data));
s.sort();
return s;
}
@@ -309,6 +318,13 @@ template<typename T> Set<T> Set<T>::fromStdSet(const std::set<T> &set)
return s;
}
+template<typename T> QList<T> Set<T>::toList() const
+{
+ QList<T> list;
+ std::copy(m_data.cbegin(), m_data.cend(), std::back_inserter(list));
+ return list;
+}
+
template<typename T> std::set<T> Set<T>::toStdSet() const
{
std::set<T> set;
@@ -332,7 +348,7 @@ template<typename T> template<typename U> Set<T> Set<T>::filtered(const Set<U> &
for (auto &u : s) {
T t = dynamic_cast<T>(u);
if (t)
- filteredSet.m_data << t;
+ filteredSet.m_data.push_back(t);
}
return filteredSet;
}
@@ -376,7 +392,7 @@ template<typename T> Set<T> operator-(const Set<T> &set1, const Set<T> &set2)
break;
}
if (*it1 < *it2) {
- result.m_data << *it1++;
+ result.m_data.push_back(*it1++);
} else if (*it2 < *it1) {
++it2;
} else {
@@ -401,7 +417,7 @@ template<typename T> Set<T> operator&(const Set<T> &set1, const Set<T> &set2)
++it2;
continue;
}
- result.m_data << *it1;
+ result.m_data.push_back(*it1);
++it1;
++it2;
}
diff --git a/src/lib/corelib/tools/shellutils.cpp b/src/lib/corelib/tools/shellutils.cpp
index 3eea8724d..f41f3e11a 100644
--- a/src/lib/corelib/tools/shellutils.cpp
+++ b/src/lib/corelib/tools/shellutils.cpp
@@ -179,7 +179,7 @@ void CommandLine::setProgram(const QString &program, bool raw)
void CommandLine::appendArgument(const QString &value)
{
- m_arguments.append(value);
+ m_arguments.push_back(value);
}
void CommandLine::appendArguments(const QList<QString> &args)
@@ -192,14 +192,14 @@ void CommandLine::appendRawArgument(const QString &value)
{
Argument arg(value);
arg.shouldQuote = false;
- m_arguments.append(arg);
+ m_arguments.push_back(arg);
}
void CommandLine::appendPathArgument(const QString &value)
{
Argument arg(value);
arg.isFilePath = true;
- m_arguments.append(arg);
+ m_arguments.push_back(arg);
}
void CommandLine::clearArguments()
diff --git a/src/lib/corelib/tools/shellutils.h b/src/lib/corelib/tools/shellutils.h
index 9d840db2d..5d748152b 100644
--- a/src/lib/corelib/tools/shellutils.h
+++ b/src/lib/corelib/tools/shellutils.h
@@ -44,7 +44,8 @@
#include "qbs_export.h"
#include "hostosinfo.h"
#include <QtCore/qstring.h>
-#include <QtCore/qvector.h>
+
+#include <vector>
namespace qbs {
namespace Internal {
@@ -78,7 +79,7 @@ private:
bool m_isRawProgram;
QString m_program;
- QVector<Argument> m_arguments;
+ std::vector<Argument> m_arguments;
};
} // namespace Internal
diff --git a/src/lib/corelib/tools/tst_tools.cpp b/src/lib/corelib/tools/tst_tools.cpp
index 13cfa7700..60bb02b24 100644
--- a/src/lib/corelib/tools/tst_tools.cpp
+++ b/src/lib/corelib/tools/tst_tools.cpp
@@ -426,8 +426,6 @@ void TestTools::set_capacity()
void TestTools::set_reserve()
{
Set<int> set;
- int n = set.capacity();
- QVERIFY(n == 0);
set.reserve(1000);
QVERIFY(set.capacity() >= 1000);
@@ -441,13 +439,6 @@ void TestTools::set_reserve()
set.remove(j);
QVERIFY(set.capacity() >= 1000);
-
- set.clear();
-#if (QT_VERSION >= QT_VERSION_CHECK(5, 7, 0))
- QVERIFY(set.capacity() >= 1000); // qtbase/a7885c9756d423042bd0670d82d78d8dffe9be54
-#else
- QVERIFY(set.capacity() == 0);
-#endif
}
void TestTools::set_clear()
@@ -582,8 +573,6 @@ void TestTools::set_begin()
QVERIFY(i == j);
QVERIFY(k == ell);
- QVERIFY(i == k);
- QVERIFY(j == ell);
}
}
@@ -600,8 +589,6 @@ void TestTools::set_end()
QVERIFY(i == j);
QVERIFY(k == ell);
- QVERIFY(i == k);
- QVERIFY(j == ell);
QVERIFY(set1.constBegin() == set1.constEnd());
QVERIFY(set2.constBegin() == set2.constEnd());
@@ -634,8 +621,6 @@ void TestTools::set_end()
QVERIFY(i == j);
QVERIFY(k == ell);
- QVERIFY(i == k);
- QVERIFY(j == ell);
QVERIFY(set1.constBegin() != set1.constEnd());
QVERIFY(set2.constBegin() != set2.constEnd());
diff --git a/src/lib/corelib/tools/vsenvironmentdetector.cpp b/src/lib/corelib/tools/vsenvironmentdetector.cpp
index 92213527a..876d5fa65 100644
--- a/src/lib/corelib/tools/vsenvironmentdetector.cpp
+++ b/src/lib/corelib/tools/vsenvironmentdetector.cpp
@@ -74,26 +74,26 @@ VsEnvironmentDetector::VsEnvironmentDetector()
bool VsEnvironmentDetector::start(MSVC *msvc)
{
- return start(QVector<MSVC *>() << msvc);
+ return start(std::vector<MSVC *>{ msvc });
}
-bool VsEnvironmentDetector::start(QVector<MSVC *> msvcs)
+bool VsEnvironmentDetector::start(std::vector<MSVC *> msvcs)
{
std::sort(msvcs.begin(), msvcs.end(), [] (const MSVC *a, const MSVC *b) -> bool {
return a->vcInstallPath < b->vcInstallPath;
});
- QVector<MSVC *> compatibleMSVCs;
+ std::vector<MSVC *> compatibleMSVCs;
QString lastVcInstallPath;
for (MSVC * const msvc : qAsConst(msvcs)) {
if (lastVcInstallPath != msvc->vcInstallPath) {
lastVcInstallPath = msvc->vcInstallPath;
- if (!compatibleMSVCs.isEmpty()) {
+ if (!compatibleMSVCs.empty()) {
startDetection(compatibleMSVCs);
compatibleMSVCs.clear();
}
}
- compatibleMSVCs.append(msvc);
+ compatibleMSVCs.push_back(msvc);
}
startDetection(compatibleMSVCs);
return true;
@@ -122,9 +122,9 @@ QString VsEnvironmentDetector::findVcVarsAllBat(const MSVC &msvc) const
return QString();
}
-bool VsEnvironmentDetector::startDetection(const QVector<MSVC *> &compatibleMSVCs)
+bool VsEnvironmentDetector::startDetection(const std::vector<MSVC *> &compatibleMSVCs)
{
- const QString vcvarsallbat = findVcVarsAllBat(*compatibleMSVCs.first());
+ const QString vcvarsallbat = findVcVarsAllBat(**compatibleMSVCs.begin());
if (vcvarsallbat.isEmpty()) {
m_errorString = Tr::tr("Cannot find 'vcvarsall.bat'.");
return false;
@@ -194,7 +194,7 @@ static QString vcArchitecture(const MSVC *msvc)
}
void VsEnvironmentDetector::writeBatchFile(QIODevice *device, const QString &vcvarsallbat,
- const QVector<MSVC *> &msvcs) const
+ const std::vector<MSVC *> &msvcs) const
{
const QStringList varnames = QStringList() << QLatin1String("PATH")
<< QLatin1String("INCLUDE") << QLatin1String("LIB");
@@ -212,7 +212,7 @@ void VsEnvironmentDetector::writeBatchFile(QIODevice *device, const QString &vcv
}
}
-void VsEnvironmentDetector::parseBatOutput(const QByteArray &output, QVector<MSVC *> msvcs)
+void VsEnvironmentDetector::parseBatOutput(const QByteArray &output, std::vector<MSVC *> msvcs)
{
QString arch;
QProcessEnvironment *targetEnv = 0;
@@ -225,7 +225,8 @@ void VsEnvironmentDetector::parseBatOutput(const QByteArray &output, QVector<MSV
line.remove(0, 2);
line.chop(2);
arch = QString::fromLocal8Bit(line);
- targetEnv = &msvcs.takeFirst()->environment;
+ targetEnv = &msvcs.front()->environment;
+ msvcs.erase(msvcs.begin());
} else {
int idx = line.indexOf('=');
if (idx < 0)
diff --git a/src/lib/corelib/tools/vsenvironmentdetector.h b/src/lib/corelib/tools/vsenvironmentdetector.h
index 30a574edb..4b973a34d 100644
--- a/src/lib/corelib/tools/vsenvironmentdetector.h
+++ b/src/lib/corelib/tools/vsenvironmentdetector.h
@@ -60,14 +60,14 @@ public:
VsEnvironmentDetector();
bool start(MSVC *msvc);
- bool start(QVector<MSVC *> msvcs);
+ bool start(std::vector<MSVC *> msvcs);
QString errorString() const { return m_errorString; }
private:
QString findVcVarsAllBat(const MSVC &msvc) const;
- bool startDetection(const QVector<MSVC *> &compatibleMSVCs);
- void writeBatchFile(QIODevice *device, const QString &vcvarsallbat, const QVector<MSVC *> &msvcs) const;
- void parseBatOutput(const QByteArray &output, QVector<MSVC *> msvcs);
+ bool startDetection(const std::vector<MSVC *> &compatibleMSVCs);
+ void writeBatchFile(QIODevice *device, const QString &vcvarsallbat, const std::vector<MSVC *> &msvcs) const;
+ void parseBatOutput(const QByteArray &output, std::vector<MSVC *> msvcs);
const QString m_windowsSystemDirPath;
QString m_errorString;
diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp
index eadbc1559..5c8a81c2c 100644
--- a/tests/auto/api/tst_api.cpp
+++ b/tests/auto/api/tst_api.cpp
@@ -47,13 +47,13 @@
#include <QtCore/qscopedpointer.h>
#include <QtCore/qstringlist.h>
#include <QtCore/qtimer.h>
-#include <QtCore/qvector.h>
#include <QtTest/qtest.h>
#include <algorithm>
#include <functional>
#include <utility>
+#include <vector>
#define VERIFY_NO_ERROR(errorInfo) \
QVERIFY2(!errorInfo.hasError(), qPrintable(errorInfo.toString()))
@@ -94,10 +94,10 @@ class ProcessResultReceiver : public QObject
Q_OBJECT
public:
QString output;
- QVector<qbs::ProcessResult> results;
+ std::vector<qbs::ProcessResult> results;
void handleProcessResult(const qbs::ProcessResult &result) {
- results << result;
+ results.push_back(result);
output += result.stdErr().join(QLatin1Char('\n'));
output += result.stdOut().join(QLatin1Char('\n'));
}
@@ -1723,8 +1723,8 @@ void TestApi::processResult()
const qbs::ErrorInfo errorInfo = doBuildProject("process-result",
nullptr, &resultReceiver, nullptr, qbs::BuildOptions(), overridden);
QCOMPARE(expectedExitCode != 0, errorInfo.hasError());
- QVERIFY(resultReceiver.results.count() > 1);
- const qbs::ProcessResult &result = resultReceiver.results.last();
+ QVERIFY(resultReceiver.results.size() > 1);
+ const qbs::ProcessResult &result = resultReceiver.results.back();
QVERIFY2(result.executableFilePath().contains("app"), qPrintable(result.executableFilePath()));
QCOMPARE(expectedExitCode, result.exitCode());
QCOMPARE(expectedExitCode == 0, result.success());
@@ -1737,7 +1737,7 @@ void TestApi::processResult()
QByteArray expectedContent;
const QStringList consoleOutput;
};
- const QVector<CheckParams> checkParams({
+ const std::vector<CheckParams> checkParams({
CheckParams(redirectStdout, "stdout.txt", "stdout", result.stdOut()),
CheckParams(redirectStderr, "stderr.txt", "stderr", result.stdErr())
});