| Home | Libraries | People | FAQ | More

## Class bad_virtual_result_cast

boost::contract::bad_virtual_result_cast — Exception thrown when inconsistent return values are passed to overridden virtual public functions.

## Synopsis

    // In header: <boost/contract/core/exception.hpp>

    class bad_virtual_result_cast :
      public std::bad_cast, public boost::contract::exception
    {
    public:

      // public member functions
      explicit bad_virtual_result_cast(char const *, char const *);
      ~bad_virtual_result_cast();
      char const * what() const;
    };

## Description

This exception is thrown when programmers pass to this library return value parameters for public function overrides in derived classes that are not consistent with the return type parameter passed for the virtual public function being overridden from the base classes. This allows this library to give more descriptive error messages in such cases of misuse.

This exception is internally thrown by this library and programmers should not need to throw it from user code.

See Also: Public Function Overrides

### `bad_virtual_result_cast` public member functions

1.     explicit bad_virtual_result_cast(char const * from_type_name,
                                        char const * to_type_name);

   Construct this object with the name of the from- and to- result types.

   Parameters: |
   `from_type_name` | Name of the from-type (source of the cast).
   `to_type_name` | Name of the to-type (destination of the cast).

2.     ~bad_virtual_result_cast();

   Destruct this object.

   Throws: This is declared `noexcept` (or `throw()` before C++11).

3.     char const * what() const;

   Description for this error (containing both from- and to- type names).

   Throws: This is declared `noexcept` (or `throw()` before C++11).