Skip to content

About

C++ utility class template. Generalization of std::function for any number of signatures.

Resources

Stars

9 stars

Watchers

1 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

multifunction

multifunction is a C++ utility class template. It is a type-erasing container for a single functor that defines a set of parenthesis operator overloads. In other words, it is a generalization of std::function for any number of signatures.

For example this instance of multifunction:

multifunction
<
    void(int),
    void(const char*),
    bool(std::unique_ptr<double>&&)
>

is able to hold a functor of the following forms:

struct overloaded_functor
{
    void operator()(int);
    void operator()(const char*);
    bool operator()(std::unique_ptr<double>&&);
    //...
};

struct generic_functor
{
    template<typename Any> auto operator()(Any&&);
    //...
};

struct mixed_functor
{
    template<typename Any> void operator()(const Any&);
    bool operator()(std::unique_ptr<double>&&);
    //...
};

About

C++ utility class template. Generalization of std::function for any number of signatures.

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages