8 #include <hilti/ast/meta.h>
9 #include <hilti/base/id-base.h>
10 #include <hilti/base/util.h>
24 explicit ID(std::string_view s) : Base(s) {}
31 ID(std::string_view s, AlreadyNormalized n) :
Base(s, n) {}
34 template<
typename... T,
typename enable = std::enable_if_t<(... && std::is_convertible_v<T, std::string_view>)>>
35 explicit ID(
const T&... s) :
Base(s...) {}
38 ID(std::initializer_list<std::string_view> x) :
Base(x) {}
40 ID(
const Base& other) : Base(other) {}
42 ID(Base&& other) noexcept : Base(other) {}
45 inline std::ostream& operator<<(std::ostream& out,
const ID&
id) {
46 out << std::string(
id);
55 std::size_t operator()(
const hilti::ID&
id)
const {
return hash<std::string>()(id); }
ID(const char *s)
Definition: id.h:23
ID(std::initializer_list< std::string_view > x)
Definition: id.h:38
ID(std::string_view s, AlreadyNormalized n)
Definition: id.h:31
ID(const T &... s)
Definition: id.h:35