forked from qt-creator/qt-creator
Fix MSVC2015 build
- error C3431: 'LanguageExtension': a scoped enumeration cannot be redeclared as an unscoped enumeration - add constructors to SlotUsage - do not use pointers for back_insert_iterator. Change-Id: Id6df08436de639b70fdf6ccc4914f8dee2cb8628 Reviewed-by: Marco Bubke <marco.bubke@qt.io> Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
committed by
Marco Bubke
parent
537a4ba285
commit
7f9931b3f9
@@ -60,14 +60,13 @@ enum class LanguageExtension : unsigned char {
|
||||
|
||||
Q_DECLARE_FLAGS(LanguageExtensions, LanguageExtension)
|
||||
|
||||
constexpr enum LanguageExtension operator|(const LanguageExtension first,
|
||||
const LanguageExtension second)
|
||||
constexpr LanguageExtension operator|(LanguageExtension first, LanguageExtension second)
|
||||
{
|
||||
return static_cast<LanguageExtension>(
|
||||
(static_cast<unsigned char>(first) | static_cast<unsigned char>(second)));
|
||||
}
|
||||
|
||||
constexpr bool operator&&(const LanguageExtension first, const LanguageExtension second)
|
||||
constexpr bool operator&&(LanguageExtension first, LanguageExtension second)
|
||||
{
|
||||
return static_cast<unsigned char>(first) & static_cast<unsigned char>(second);
|
||||
}
|
||||
|
@@ -93,7 +93,7 @@ public:
|
||||
QString callGroupId;
|
||||
|
||||
// Versions, features and extensions
|
||||
::Utils::Language language = Utils::Language::Cxx;
|
||||
::Utils::Language language = ::Utils::Language::Cxx;
|
||||
::Utils::LanguageVersion languageVersion = ::Utils::LanguageVersion::LatestCxx;
|
||||
::Utils::LanguageExtensions languageExtensions = ::Utils::LanguageExtension::None;
|
||||
CPlusPlus::LanguageFeatures languageFeatures;
|
||||
|
@@ -55,18 +55,18 @@ public:
|
||||
|
||||
void pathsChanged(const FilePathIds &filePathIds)
|
||||
{
|
||||
using SourceTimeStampPointers = std::vector<SourceTimeStamp*>;
|
||||
using SourceTimeStampReferences = std::vector<std::reference_wrapper<SourceTimeStamp>>;
|
||||
|
||||
class BackInserterIterator : public std::back_insert_iterator<SourceTimeStampPointers>
|
||||
class BackInserterIterator : public std::back_insert_iterator<SourceTimeStampReferences>
|
||||
{
|
||||
public:
|
||||
BackInserterIterator(SourceTimeStampPointers &container)
|
||||
: std::back_insert_iterator<SourceTimeStampPointers>(container)
|
||||
BackInserterIterator(SourceTimeStampReferences &container)
|
||||
: std::back_insert_iterator<SourceTimeStampReferences>(container)
|
||||
{}
|
||||
|
||||
BackInserterIterator &operator=(SourceTimeStamp &timeStamp)
|
||||
{
|
||||
container->push_back(&timeStamp);
|
||||
container->push_back(std::ref(timeStamp));
|
||||
|
||||
return *this;
|
||||
}
|
||||
@@ -74,7 +74,7 @@ public:
|
||||
BackInserterIterator &operator*() { return *this; }
|
||||
};
|
||||
|
||||
SourceTimeStampPointers timeStampsToUpdate;
|
||||
SourceTimeStampReferences timeStampsToUpdate;
|
||||
timeStampsToUpdate.reserve(filePathIds.size());
|
||||
|
||||
std::set_intersection(m_currentSourceTimeStamps.begin(),
|
||||
@@ -83,9 +83,9 @@ public:
|
||||
filePathIds.end(),
|
||||
BackInserterIterator(timeStampsToUpdate));
|
||||
|
||||
for (SourceTimeStamp *sourceTimeStamp : timeStampsToUpdate) {
|
||||
sourceTimeStamp->lastModified = m_getModifiedTime(
|
||||
m_filePathCache.filePath(sourceTimeStamp->sourceId));
|
||||
for (SourceTimeStamp &sourceTimeStamp : timeStampsToUpdate) {
|
||||
sourceTimeStamp.lastModified = m_getModifiedTime(
|
||||
m_filePathCache.filePath(sourceTimeStamp.sourceId));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -33,6 +33,11 @@ using uint = unsigned int;
|
||||
|
||||
struct SlotUsage
|
||||
{
|
||||
SlotUsage() = default;
|
||||
SlotUsage(uint free, uint used)
|
||||
: free(free)
|
||||
, used(used)
|
||||
{}
|
||||
uint free = 0;
|
||||
uint used = 0;
|
||||
};
|
||||
|
Reference in New Issue
Block a user