1#ifndef FREE_TENSOR_ID_H
2#define FREE_TENSOR_ID_H
23 static std::atomic_uint64_t globalIdCnt_;
24 explicit ID(uint64_t
id) : id_(id) {}
28 ID(std::nullopt_t) : id_(0) {}
30 static ID make() {
return ID(globalIdCnt_++); }
35 operator uint64_t()
const {
return id_; }
37 friend std::ostream &
operator<<(std::ostream &os,
const ID &
id);
39 friend struct ::std::hash<ID>;
53std::function<std::ostream &(std::ostream &)>
manipNoIdSign(
bool flag);
friend std::ostream & operator<<(std::ostream &os, const ID &id)
Definition: id.cc:15
friend bool operator==(const ID &lhs, const ID &rhs)
Definition: id.cc:25
ID(std::nullopt_t)
Definition: id.h:28
static ID make()
Definition: id.h:30
static ID make(uint64_t id)
Definition: id.h:31
bool isValid() const
Definition: id.h:33
Definition: allocator.h:9
std::function< std::ostream &(std::ostream &)> manipNoIdSign(bool flag)
Definition: id.cc:8
auto && lhs
Definition: const_fold.cc:70
int OSTREAM_NO_ID_SIGN
Definition: id.cc:7
auto auto && rhs
Definition: const_fold.cc:70
std::ostream & operator<<(std::ostream &os, const Dependence &dep)
Definition: deps.cc:1404