top of page


Modern c++17 library containing multicast delegate and event classes on Windows, macOS, Linux, iOS and android.



  • Single and multicast delegate

  • event, event_args and event_handler are base classes for eventing.

  • action represents a delegate that has variable parameters and does not return a value.

  • func represents a delegate that has variables parameters and returns a value of the type specified by the result_t type.

  • predicate represents a delagate that defines a set of criteria and determines whether the specified object meets those criteria.

  • overload represents class that use to determine one of const and non const overloaded methods.


For more information see:


The classic first application 'Hello World'.

delegates_hello_world.cpp :

#include <delegates/delegates>

#include <iostream>

#include <string>


using namespace std;

using namespace delegates;


int main() {

  delegate<void(const string& str)> write_line;


  write_line += [](const string& str)  {

    cout << str << endl;



  write_line += [](auto str)  {

    cerr << str << endl;



  write_line("Hello, world!");


CMakeLists.txt :

cmake_minimum_required(VERSION 3.3)



find_package(xtd.tunit REQUIRED)

add_executable(${PROJECT_NAME} delegates_hello_world.cpp)

target_link_libraries(${PROJECT_NAME} tunit)


Hello, world!

Hello, world!

Getting Started

bottom of page