This class defines the type of objects thrown as exceptions to report invalid operations on future objects or other elements of the library that may access a future's shared state.
The class inherits from logic_error, to which it adds an error_code as member code (and defines a specialized what member).