/********************* */
/*! \file abstract_value.h
** \verbatim
- ** Original author: Morgan Deters
- ** Major contributors: none
- ** Minor contributors (to current version): none
+ ** Top contributors (to current version):
+ ** Morgan Deters, Tim King
** This file is part of the CVC4 project.
- ** Copyright (c) 2009-2013 New York University and The University of Iowa
- ** See the file COPYING in the top-level source directory for licensing
- ** information.\endverbatim
+ ** Copyright (c) 2009-2019 by the authors listed in the file AUTHORS
+ ** in the top-level source directory) and their institutional affiliations.
+ ** All rights reserved. See the file COPYING in the top-level source
+ ** directory for licensing information.\endverbatim
**
** \brief Representation of abstract values
**
#pragma once
-#include "expr/type.h"
-#include <iostream>
+#include <iosfwd>
+
+#include "util/integer.h"
namespace CVC4 {
class CVC4_PUBLIC AbstractValue {
const Integer d_index;
-public:
-
- AbstractValue(Integer index) throw(IllegalArgumentException) :
- d_index(index) {
- CheckArgument(index >= 1, index, "index >= 1 required for abstract value, not `%s'", index.toString().c_str());
- }
-
- ~AbstractValue() throw() {
- }
-
- const Integer& getIndex() const throw() {
- return d_index;
- }
+ public:
+ AbstractValue(Integer index);
- bool operator==(const AbstractValue& val) const throw() {
+ const Integer& getIndex() const { return d_index; }
+ bool operator==(const AbstractValue& val) const
+ {
return d_index == val.d_index;
}
- bool operator!=(const AbstractValue& val) const throw() {
- return !(*this == val);
- }
-
- bool operator<(const AbstractValue& val) const throw() {
+ bool operator!=(const AbstractValue& val) const { return !(*this == val); }
+ bool operator<(const AbstractValue& val) const
+ {
return d_index < val.d_index;
}
- bool operator<=(const AbstractValue& val) const throw() {
+ bool operator<=(const AbstractValue& val) const
+ {
return d_index <= val.d_index;
}
- bool operator>(const AbstractValue& val) const throw() {
- return !(*this <= val);
- }
- bool operator>=(const AbstractValue& val) const throw() {
- return !(*this < val);
- }
-
+ bool operator>(const AbstractValue& val) const { return !(*this <= val); }
+ bool operator>=(const AbstractValue& val) const { return !(*this < val); }
};/* class AbstractValue */
std::ostream& operator<<(std::ostream& out, const AbstractValue& val) CVC4_PUBLIC;