From d63eaa0c42fe4b946dbd21d3854096f62fe99400 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 15 Aug 2019 14:27:40 +0200 Subject: [PATCH] Clang: Make ProjectPartId StringCache friendly Change-Id: I53fdeb87ac67ca2c2c7509bf725566298f3b2963 Reviewed-by: Tim Jenssen --- src/libs/clangsupport/projectpartid.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/libs/clangsupport/projectpartid.h b/src/libs/clangsupport/projectpartid.h index fc5f659605f..335a0f0cc55 100644 --- a/src/libs/clangsupport/projectpartid.h +++ b/src/libs/clangsupport/projectpartid.h @@ -31,6 +31,15 @@ namespace ClangBackEnd { class ProjectPartId { + template + friend class StringCache; + public: constexpr ProjectPartId() = default; @@ -47,6 +56,11 @@ public: return first.isValid() && first.projectPathId == second.projectPathId; } + friend bool operator==(ProjectPartId first, int second) + { + return first == ProjectPartId{second}; + } + friend bool operator!=(ProjectPartId first, ProjectPartId second) { return !(first == second); } friend bool operator<(ProjectPartId first, ProjectPartId second) @@ -68,6 +82,10 @@ public: return in; } +private: + operator int() const { return projectPathId; } + ProjectPartId operator++() { return ++projectPathId; } + public: int projectPathId = -1; };