Move some operators out of namespaces

Otherwise, they can mess with overload resolution.

Change-Id: I4931744838e033d4502af1d86408fae3db5824bc
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2020-01-07 10:45:06 +01:00
parent be19b00289
commit 8aede35d88
2 changed files with 24 additions and 21 deletions

View File

@@ -61,17 +61,18 @@ enum class LanguageExtension : unsigned char {
Q_DECLARE_FLAGS(LanguageExtensions, LanguageExtension)
constexpr LanguageExtension operator|(LanguageExtension first, LanguageExtension second)
{
return static_cast<LanguageExtension>(
(static_cast<unsigned char>(first) | static_cast<unsigned char>(second)));
}
constexpr bool operator&&(LanguageExtension first, LanguageExtension second)
{
return static_cast<unsigned char>(first) & static_cast<unsigned char>(second);
}
enum class QtVersion { Unknown = -1, None, Qt4, Qt5 };
} // namespace Utils
constexpr Utils::LanguageExtension operator|(Utils::LanguageExtension first,
Utils::LanguageExtension second)
{
return Utils::LanguageExtension(static_cast<unsigned char>(first)
| static_cast<unsigned char>(second));
}
constexpr bool operator&&(Utils::LanguageExtension first, Utils::LanguageExtension second)
{
return static_cast<unsigned char>(first) & static_cast<unsigned char>(second);
}

View File

@@ -56,29 +56,31 @@ enum class WarningFlags {
NonVirtualDestructor = 1 << 26
};
inline WarningFlags operator|(WarningFlags first, WarningFlags second)
} // namespace ProjectExplorer
inline ProjectExplorer::WarningFlags operator|(ProjectExplorer::WarningFlags first,
ProjectExplorer::WarningFlags second)
{
return static_cast<WarningFlags>(static_cast<int>(first) | static_cast<int>(second));
return ProjectExplorer::WarningFlags(int(first) | int(second));
}
inline WarningFlags operator&(WarningFlags first, WarningFlags second)
inline ProjectExplorer::WarningFlags operator&(ProjectExplorer::WarningFlags first,
ProjectExplorer::WarningFlags second)
{
return static_cast<WarningFlags>(static_cast<int>(first) & static_cast<int>(second));
return ProjectExplorer::WarningFlags(int(first) & int(second));
}
inline void operator|=(WarningFlags &first, WarningFlags second)
inline void operator|=(ProjectExplorer::WarningFlags &first, ProjectExplorer::WarningFlags second)
{
first = first | second;
}
inline void operator&=(WarningFlags &first, WarningFlags second)
inline void operator&=(ProjectExplorer::WarningFlags &first, ProjectExplorer::WarningFlags second)
{
first = first & second;
}
inline WarningFlags operator~(WarningFlags flags)
inline ProjectExplorer::WarningFlags operator~(ProjectExplorer::WarningFlags flags)
{
return static_cast<WarningFlags>(~static_cast<int>(flags));
return ProjectExplorer::WarningFlags(~int(flags));
}
} // namespace ProjectExplorer