Regina Calculation Engine
|
Provides a typedef to help identify where in the class hierarchy the output functions T::str() and T::detail() are implemented. More...
#include <output.h>
Public Types | |
typedef std::remove_reference< decltype(test(std::declval< T >)))>::type | type |
The class in which T::str() and T::detail() are implemented. More... | |
Provides a typedef to help identify where in the class hierarchy the output functions T::str() and T::detail() are implemented.
If T is a class derived (directly or indirectly) from some class Output<...>, then OutputBase<T>::type
is defined to be this parent class Output<...>.
If T is not derived from any class Output<...>, then OutputBase<T>::type
is defined to be T itself.
This helper class can be useful when trying to disambiguate between the implementation of str() that is inherited from Output, versus an extended implementation of str() (perhaps with more arguments) that is implemented in the class T itself.