38 lines
911 B
C++
38 lines
911 B
C++
#ifndef INCLUDE_Public_USEINFO_H_
|
|
#define INCLUDE_Public_USEINFO_H_
|
|
|
|
#include "Public/Public.h"
|
|
|
|
|
|
struct UseInfo {
|
|
int64_t next_use; // 待用信息 (0 表示不再使用, 其他数表示下一次使用的位置)
|
|
bool active; // 活跃信息 (true 表示还要使用, false 表示不需要了)
|
|
|
|
UseInfo(int64_t next_use=0, bool active=false) : next_use(next_use), active(active) {}
|
|
|
|
UseInfo& operator=(const UseInfo& rhs);
|
|
friend std::ostream& operator<<(std::ostream& os, const UseInfo& rhs);
|
|
|
|
bool no_use() const;
|
|
};
|
|
|
|
|
|
inline UseInfo& UseInfo::operator=(const UseInfo& rhs) {
|
|
next_use = rhs.next_use;
|
|
active = rhs.active;
|
|
return *this;
|
|
}
|
|
|
|
|
|
inline std::ostream& operator<<(std::ostream& os, const UseInfo& rhs) {
|
|
os << "(" << rhs.next_use << "," << ((rhs.active) ? "Y" : "^") << ")";
|
|
return os;
|
|
}
|
|
|
|
|
|
inline bool UseInfo::no_use() const {
|
|
return (next_use == 0 && active == false);
|
|
}
|
|
|
|
#endif
|