idstring: Add 'in' function

Signed-off-by: gatecat <gatecat@ds0.me>
This commit is contained in:
gatecat 2021-09-27 19:18:22 +01:00
parent 535b2490c4
commit 0b0baf3446

View File

@ -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