Regina Calculation Engine
regina::ReturnsTraits< T > Struct Template Reference

Helper class to assist with compile-time analysis of Regina's function objects. More...

#include <utilities/registryutils.h>

Inheritance diagram for regina::ReturnsTraits< T >:
regina::ReturnsTraitsImplementation< T, HasReturnType< std::remove_reference< T >::type >::value >

Detailed Description

template<typename T>
struct regina::ReturnsTraits< T >

Helper class to assist with compile-time analysis of Regina's function objects.

For the purposes of this documentation:

This helper class can be used to distinguish between void and non-void function objects, and/or (thanks to the C++11 SFINAE mechanism) define some other template function differently according to whether its template argument is a void or non-void function object. See the forCoords() functions in surfaces/coordregistry.h for an example of ReturnsTraits in action.

The template parameter T should either be a function object, or a reference to a function object (both lvalue and rvalue references are recognised). This class provides the following typedefs:


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

Copyright © 1999-2018, The Regina development team
This software is released under the GNU General Public License, with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@maths.uq.edu.au).