LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::reg::NeedsTranscendental< Op > Struct Template Reference

Wrap an Op whose registry entry lists Double and Real but NOT Exact. More...

#include </data/gcasale/line-dev.git/cpp/src/reg/api_dispatch_detail.h>

Static Public Member Functions

template<class T>
static Json run (Args &a)

Detailed Description

template<class Op>
struct line::reg::NeedsTranscendental< Op >

Wrap an Op whose registry entry lists Double and Real but NOT Exact.

run_at instantiates all three backends because the mode is a runtime value, so an Op that calls exp, log or sqrt would not COMPILE at Rational even though it can never be REACHED there – api_invoke refuses the mode against the registry before dispatching. The if-constexpr makes that same fact known to the compiler. The throw is the arm the gate has already excluded, kept as a real refusal rather than a placeholder so that a registry entry mistakenly widened to Exact reports the reason instead of returning a wrong number.

Definition at line 79 of file api_dispatch_detail.h.

Member Function Documentation

◆ run()

template<class Op>
template<class T>
Json line::reg::NeedsTranscendental< Op >::run ( Args & a)
inlinestatic

Definition at line 81 of file api_dispatch_detail.h.

References run(), and line::UnsupportedError::UnsupportedError().

Referenced by run().


The documentation for this struct was generated from the following file: