Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Data Structures | Static Public Member Functions
abstraction::OperatorRegistry Class Reference

#include <OperatorRegistry.hpp>

Data Structures

class  BinaryEntry
 
class  PostfixEntry
 
class  PrefixEntry
 

Static Public Member Functions

template<class FirstParam , class SecondParam >
static void unregisterBinary (Operators::BinaryOperators type)
 
template<class Return , class FirstParam , class SecondParam >
static void registerBinary (Operators::BinaryOperators type, std::function< Return(FirstParam, SecondParam) > func)
 
template<Operators::BinaryOperators Type, class FirstParam , class SecondParam >
static void registerBinary ()
 
static std::shared_ptr< abstraction::OperationAbstractiongetBinaryAbstraction (Operators::BinaryOperators type, const ext::vector< std::string > &paramTypes, const ext::vector< abstraction::TypeQualifiers::TypeQualifierSet > &typeQualifiers, AlgorithmCategories::AlgorithmCategory category)
 
static ext::list< ext::pair< Operators::BinaryOperators, AlgorithmFullInfo > > listBinaryOverloads ()
 
template<class Param >
static void unregisterPrefix (Operators::PrefixOperators type)
 
template<class Return , class Param >
static void registerPrefix (Operators::PrefixOperators type, std::function< Return(Param) > func)
 
template<Operators::PrefixOperators Type, class Param >
static void registerPrefix ()
 
static std::shared_ptr< abstraction::OperationAbstractiongetPrefixAbstraction (Operators::PrefixOperators type, const ext::vector< std::string > &paramTypes, const ext::vector< abstraction::TypeQualifiers::TypeQualifierSet > &typeQualifiers, AlgorithmCategories::AlgorithmCategory category)
 
static ext::list< ext::pair< Operators::PrefixOperators, AlgorithmFullInfo > > listPrefixOverloads ()
 
template<class Param >
static void unregisterPostfix (Operators::PostfixOperators type)
 
template<class Return , class Param >
static void registerPostfix (Operators::PostfixOperators type, std::function< Return(Param) > func)
 
template<Operators::PostfixOperators Type, class Param >
static void registerPostfix ()
 
static std::shared_ptr< abstraction::OperationAbstractiongetPostfixAbstraction (Operators::PostfixOperators type, const ext::vector< std::string > &paramTypes, const ext::vector< abstraction::TypeQualifiers::TypeQualifierSet > &typeQualifiers, AlgorithmCategories::AlgorithmCategory category)
 
static ext::list< ext::pair< Operators::PostfixOperators, AlgorithmFullInfo > > listPostfixOverloads ()
 

Member Function Documentation

◆ getBinaryAbstraction()

std::shared_ptr< abstraction::OperationAbstraction > abstraction::OperatorRegistry::getBinaryAbstraction ( Operators::BinaryOperators  type,
const ext::vector< std::string > &  paramTypes,
const ext::vector< abstraction::TypeQualifiers::TypeQualifierSet > &  typeQualifiers,
AlgorithmCategories::AlgorithmCategory  category 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPostfixAbstraction()

std::shared_ptr< abstraction::OperationAbstraction > abstraction::OperatorRegistry::getPostfixAbstraction ( Operators::PostfixOperators  type,
const ext::vector< std::string > &  paramTypes,
const ext::vector< abstraction::TypeQualifiers::TypeQualifierSet > &  typeQualifiers,
AlgorithmCategories::AlgorithmCategory  category 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPrefixAbstraction()

std::shared_ptr< abstraction::OperationAbstraction > abstraction::OperatorRegistry::getPrefixAbstraction ( Operators::PrefixOperators  type,
const ext::vector< std::string > &  paramTypes,
const ext::vector< abstraction::TypeQualifiers::TypeQualifierSet > &  typeQualifiers,
AlgorithmCategories::AlgorithmCategory  category 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ listBinaryOverloads()

ext::list< ext::pair< Operators::BinaryOperators, AlgorithmFullInfo > > abstraction::OperatorRegistry::listBinaryOverloads ( )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ listPostfixOverloads()

ext::list< ext::pair< Operators::PostfixOperators, AlgorithmFullInfo > > abstraction::OperatorRegistry::listPostfixOverloads ( )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ listPrefixOverloads()

ext::list< ext::pair< Operators::PrefixOperators, AlgorithmFullInfo > > abstraction::OperatorRegistry::listPrefixOverloads ( )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ registerBinary() [1/2]

template<Operators::BinaryOperators Type, class FirstParam , class SecondParam >
static void abstraction::OperatorRegistry::registerBinary ( )
inlinestatic
Here is the call graph for this function:
Here is the caller graph for this function:

◆ registerBinary() [2/2]

template<class Return , class FirstParam , class SecondParam >
static void abstraction::OperatorRegistry::registerBinary ( Operators::BinaryOperators  type,
std::function< Return(FirstParam, SecondParam) >  func 
)
inlinestatic

◆ registerPostfix() [1/2]

template<Operators::PostfixOperators Type, class Param >
static void abstraction::OperatorRegistry::registerPostfix ( )
inlinestatic
Here is the call graph for this function:
Here is the caller graph for this function:

◆ registerPostfix() [2/2]

template<class Return , class Param >
static void abstraction::OperatorRegistry::registerPostfix ( Operators::PostfixOperators  type,
std::function< Return(Param) >  func 
)
inlinestatic

◆ registerPrefix() [1/2]

template<Operators::PrefixOperators Type, class Param >
static void abstraction::OperatorRegistry::registerPrefix ( )
inlinestatic
Here is the call graph for this function:
Here is the caller graph for this function:

◆ registerPrefix() [2/2]

template<class Return , class Param >
static void abstraction::OperatorRegistry::registerPrefix ( Operators::PrefixOperators  type,
std::function< Return(Param) >  func 
)
inlinestatic

◆ unregisterBinary()

template<class FirstParam , class SecondParam >
static void abstraction::OperatorRegistry::unregisterBinary ( Operators::BinaryOperators  type)
inlinestatic

◆ unregisterPostfix()

template<class Param >
static void abstraction::OperatorRegistry::unregisterPostfix ( Operators::PostfixOperators  type)
inlinestatic

◆ unregisterPrefix()

template<class Param >
static void abstraction::OperatorRegistry::unregisterPrefix ( Operators::PrefixOperators  type)
inlinestatic

The documentation for this class was generated from the following files: