Alexandria 2.31.0
SDC-CH common library for the Euclid project
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | List of all members
Pyston::RegisterNode< T > Struct Template Reference

Public Types

using NodeType = py::class_< Node< T >, boost::noncopyable >
 

Static Public Member Functions

template<typename To >
static void defCastOperations (NodeType &node)
 
template<typename Y >
static void specialized (NodeType &node, void *)
 
template<typename Y >
static void specialized (NodeType &node, typename std::enable_if< std::is_floating_point< Y >::value >::type *=nullptr)
 
template<typename Y >
static void specialized (NodeType &node, typename std::enable_if< std::is_same< Y, bool >::value >::type *=nullptr)
 
template<typename Y >
static void specialized (NodeType &node, typename std::enable_if< std::is_integral< Y >::value &&!std::is_same< Y, bool >::value >::type *=nullptr)
 
static void general (NodeType &node)
 
static void Do ()
 

Detailed Description

template<typename T>
struct Pyston::RegisterNode< T >

Definition at line 65 of file Module.cpp.

Member Typedef Documentation

◆ NodeType

template<typename T >
using Pyston::RegisterNode< T >::NodeType = py::class_<Node<T>, boost::noncopyable>

Definition at line 67 of file Module.cpp.

Member Function Documentation

◆ defCastOperations()

template<typename T >
template<typename To >
static void Pyston::RegisterNode< T >::defCastOperations ( NodeType node)
inlinestatic

Define operations where the other value has a different type (To) i.e. if add is called on a boolean, and the other value (To) is a float, self has to be upcasted

Definition at line 75 of file Module.cpp.

References Pyston::makeBinaryFunction().

Here is the call graph for this function:

◆ Do()

template<typename T >
static void Pyston::RegisterNode< T >::Do ( )
inlinestatic

Definition at line 187 of file Module.cpp.

References Pyston::RegisterNode< T >::general().

Referenced by Pyston::BOOST_PYTHON_MODULE().

Here is the call graph for this function:

◆ general()

template<typename T >
static void Pyston::RegisterNode< T >::general ( NodeType node)
inlinestatic

Definition at line 152 of file Module.cpp.

References AS_BOOL_METHOD, Pyston::makeBinaryFunction(), and Pyston::makeFunction().

Referenced by Pyston::RegisterNode< T >::Do().

Here is the call graph for this function:

◆ specialized() [1/4]

template<typename T >
template<typename Y >
static void Pyston::RegisterNode< T >::specialized ( NodeType node,
typename std::enable_if< std::is_floating_point< Y >::value >::type *  = nullptr 
)
inlinestatic

Methods for floating point types

Definition at line 96 of file Module.cpp.

References Pyston::makeBinaryFunction(), and Pyston::makeFunction().

Here is the call graph for this function:

◆ specialized() [2/4]

template<typename T >
template<typename Y >
static void Pyston::RegisterNode< T >::specialized ( NodeType node,
typename std::enable_if< std::is_integral< Y >::value &&!std::is_same< Y, bool >::value >::type *  = nullptr 
)
inlinestatic

Methods for integral types, except bool

Definition at line 143 of file Module.cpp.

References Pyston::makeBinaryFunction(), and Pyston::makeFunction().

Here is the call graph for this function:

◆ specialized() [3/4]

template<typename T >
template<typename Y >
static void Pyston::RegisterNode< T >::specialized ( NodeType node,
typename std::enable_if< std::is_same< Y, bool >::value >::type *  = nullptr 
)
inlinestatic

Methods for the boolean type

Definition at line 132 of file Module.cpp.

◆ specialized() [4/4]

template<typename T >
template<typename Y >
static void Pyston::RegisterNode< T >::specialized ( NodeType node,
void *   
)
static

Methods for specific types


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