OptionInfo

This class encapsulates all the information associated with a configuration option. It can be retrieved via cvc5::Solver::getOptionInfo() and allows to query any configuration information associated with an option.



struct OptionInfo

Holds some description about a particular option, including its name, its aliases, whether the option was explicitly set by the user, and information concerning its value. It can be obtained via Solver::getOptionInfo() and allows for a more detailed inspection of options than Solver::getOption() . The valueInfo member holds any of the following alternatives:

  • VoidInfo if the option holds no value (or the value has no native type)

  • ValueInfo if the option is of type bool or std::string , holds the current value and the default value.

  • NumberInfo if the option is of type int64_t , uint64_t or double , holds the current and default value, as well as the minimum and maximum.

  • ModeInfo if the option is a mode option, holds the current and default values, as well as a list of valid modes.

Additionally, this class provides convenience functions to obtain the current value of an option in a type-safe manner using boolValue() , stringValue() , intValue() , uintValue() and doubleValue() . They assert that the option has the respective type and return the current value.

If the option has a special type that is not covered by the above alternatives, the valueInfo holds a VoidInfo . Some options, that are expected to be used by frontends (e.g., input and output streams) can also be accessed using Solver::getDriverOptions() .

Public Types

using OptionInfoVariant = std :: variant < VoidInfo , ValueInfo < bool > , ValueInfo < std :: string > , NumberInfo < int64_t > , NumberInfo < uint64_t > , NumberInfo < double > , ModeInfo >

Possible types for valueInfo .

Public Functions

bool boolValue ( ) const

Get the current value as a bool .

Note

Asserts that valueInfo holds a bool .

Returns :

The current value as a bool .

std :: string stringValue ( ) const

Get the current value as a std::string .

Note

Asserts that valueInfo holds a std::string .

Returns :

The current value as a std::string .

int64_t intValue ( ) const

Get the current value as an int64_t .

Note

Asserts that valueInfo holds an int64_t .

Returns :

The current value as a int64_t .

uint64_t uintValue ( ) const

Get the current value as a uint64_t .

Note

Asserts that valueInfo holds a uint64_t .

Returns :

The current value as a uint64_t .

double doubleValue ( ) const

Obtain the current value as a double .

Note

Asserts that valueInfo holds a double .

Returns :

The current value as a double .

Public Members

std :: string name

The option name

std :: vector < std :: string > aliases

The option name aliases

bool setByUser

Whether the option was explicitly set by the user

bool isExpert

Whether this is an expert option

bool isRegular

Whether this is a regular option

OptionInfoVariant valueInfo

The option value information

struct ModeInfo

Information for mode option values.

Public Members

std :: string defaultValue

The default value.

std :: string currentValue

The current value.

std :: vector < std :: string > modes

The possible modes.

template < typename T >
struct NumberInfo

Information for numeric values. T can be int64_t , uint64_t or double .

Public Members

T defaultValue

The default value.

T currentValue

The current value.

std :: optional < T > minimum

The optional minimum value.

std :: optional < T > maximum

The optional maximum value.

template < typename T >
struct ValueInfo

Basic information for option values. T can be bool or std::string .

Public Members

T defaultValue

The default value.

T currentValue

The current value.

struct VoidInfo

Has no value information.


std :: ostream & cvc5 :: operator << ( std :: ostream & os , const OptionInfo & oi )

Print an OptionInfo object to an std::ostream .