#ifndef STORM_STORAGE_EXPRESSIONS_INTEGERCONSTANTEXPRESSION_H_ #define STORM_STORAGE_EXPRESSIONS_INTEGERCONSTANTEXPRESSION_H_ #include "src/storage/expressions/ConstantExpression.h" namespace storm { namespace expressions { class IntegerConstantExpression : public ConstantExpression { public: /*! * Creates an integer constant expression with the given constant name. * * @param constantName The name of the integer constant associated with this expression. */ IntegerConstantExpression(std::string const& constantName); // Instantiate constructors and assignments with their default implementations. IntegerConstantExpression(IntegerConstantExpression const& other) = default; IntegerConstantExpression& operator=(IntegerConstantExpression const& other) = default; IntegerConstantExpression(IntegerConstantExpression&&) = default; IntegerConstantExpression& operator=(IntegerConstantExpression&&) = default; virtual ~IntegerConstantExpression() = default; // Override base class methods. virtual int_fast64_t evaluateAsInteger(Valuation const& valuation) const; virtual double evaluateAsDouble(Valuation const& valuation) const; virtual std::unique_ptr<BaseExpression> clone() const; virtual void accept(ExpressionVisitor* visitor) const; }; } } #endif /* STORM_STORAGE_EXPRESSIONS_INTEGERCONSTANTEXPRESSION_H_ */