Regina 7.0 Calculation Engine
|
A traits class that analyses callable objects that are passed to retriangulation or link rewriting functions. More...
A traits class that analyses callable objects that are passed to retriangulation or link rewriting functions.
Recall that the initial arguments for such a callable object must be either (a) a single triangulation/link, or (b) a text signature (e.g., an isomorphism signature) followed by a triangulation/link. The callable object may take its triangulation/link by value, const reference or rvalue reference; however, if it takes a signature also then this must be by (const std::string&).
This struct provides a boolean compile-time constant valid, which is true
if and only if the initial arguemnt(s) to Action are acceptable as outlined above (i.e., an argument of the underlying Object class for actions that take a triangulation/link, or a const string reference and an Object for actions that take a text signature also).
If valid is true
, then this struct also provides a boolean compile-time constant withSig, which is true
if and only if the action takes both a text signature and a triangulation/link. If valid is false
then the boolean constant withSig will still be present, but its value is not defined.
Object | the class providing the retriangulation or link rewriting function, such as regina::Triangulation<dim> or regina::Link. |
Action | the type of a callable object that is passed to the retriangulation/rewriting function. |
FirstArg | the type of the first argument to Action; you should not specify this directly, but instead allow the compiler to deduce it. |