Thrown when a specialisation that has been filtered by operator predicates is actually called. More...
#include <SpecLibExceptions.hpp>
Public Member Functions | |
RejectedSpecialisationException (const RejectedSpecialisationException &) | |
RejectedSpecialisationException (const std::string &what) | |
Public Member Functions inherited from sp::SpecLibException | |
SpecLibException (const SpecLibException &) | |
SpecLibException (const std::string &what) | |
Public Member Functions inherited from std::runtime_error | |
T | runtime_error (T... args) |
T | what (T... args) |
Public Member Functions inherited from std::exception | |
T | exception (T... args) |
T | operator= (T... args) |
T | what (T... args) |
T | ~exception (T... args) |
Thrown when a specialisation that has been filtered by operator predicates is actually called.
Compile-time predicates can be used to prune the set of specialisations generated by runSpecialised
- otherwise the exponential blowup of possibilities (most of which are probably not interesting) would be problematic. Branches that are pruned are compiled as stubs that throw this exception.
This commonly happens for TensorDescriptor
APIs. Only a small part of the set of possibilities is usually supported, but since the API isn't strongly-typed users can still write nonsense calls.