16#ifndef SIMICS_TYPES_ANY_TYPE_H
17#define SIMICS_TYPES_ANY_TYPE_H
26 class ValueInterface {
28 virtual ValueInterface *copy()
const = 0;
29 virtual ~ValueInterface() {}
33 class Value :
public ValueInterface {
35 explicit Value(
const T &value) : value_(value) {}
36 virtual ValueInterface *copy()
const {
37 return new Value<T>(value_);
49 value_ = other.value_ ? other.value_->copy() : NULL;
61 value_ = other.value_;
72 value_ = other.value_ ? other.value_->copy() : NULL;
80 value_ =
new Value<T>(
value);
85 return static_cast<Value<T> *
>(value_)->
value();
96 ValueInterface *value_;
Generic type class.
Definition: any_type.h:25
AnyType(const T &value)
Definition: any_type.h:52
bool isSet()
Definition: any_type.h:87
~AnyType()
Definition: any_type.h:90
AnyType & operator=(const T &value)
Definition: any_type.h:77
AnyType & operator=(AnyType &&other)
Definition: any_type.h:54
AnyType & operator=(const AnyType &other)
Definition: any_type.h:65
AnyType(const AnyType &other)
Definition: any_type.h:48
AnyType()
Definition: any_type.h:47
T value()
Definition: any_type.h:84
Definition: pci_bus_interface.h:24