我想在编译时看到失败,比如static_assert,而不是运行时。
std::unordered_set<std::string> s;
#define insert(set, value) \
if (!set.insert(value).second) \
assert(false);
void init() {
insert(s, "dog");
insert(s, "bird");
}
1条答案
按热度按时间ulmd4ohb1#
您可以:
请注意,这个函数有点昂贵-您可能希望将其标记为
consteval
而不是constexpr
,并提供运行时版本,因为当您没有constexpr约束时,您可以进行一些改进。