aboutsummaryrefslogtreecommitdiffstats
path: root/common/idstring.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/idstring.h')
-rw-r--r--common/idstring.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/common/idstring.h b/common/idstring.h
index 28f5456d..019e0a2a 100644
--- a/common/idstring.h
+++ b/common/idstring.h
@@ -58,6 +58,16 @@ struct IdString
bool empty() const { return index == 0; }
unsigned int hash() const { return index; }
+
+ template <typename... Args> bool in(Args... args) const
+ {
+ // Credit: https://articles.emptycrate.com/2016/05/14/folds_in_cpp11_ish.html
+ bool result = false;
+ (void)std::initializer_list<int>{(result = result || in(args), 0)...};
+ return result;
+ }
+
+ bool in(const IdString &rhs) const { return *this == rhs; }
};
NEXTPNR_NAMESPACE_END