JSX_TTS / torch /include /c10 /core /OptionalRef.h
UMMJ's picture
Upload 5875 files
9dd3461
raw
history blame contribute delete
521 Bytes
#pragma once
namespace c10 {
template <typename T>
class OptionalRef {
public:
OptionalRef() : data_(nullptr) {}
OptionalRef(const T* data) : data_(data) {
TORCH_INTERNAL_ASSERT_DEBUG_ONLY(data_);
}
OptionalRef(const T& data) : data_(&data) {}
bool has_value() const {
return data_ != nullptr;
}
const T& get() const {
TORCH_INTERNAL_ASSERT_DEBUG_ONLY(data_);
return *data_;
}
operator bool() const {
return has_value();
}
private:
const T* data_;
};
} // namespace c10