Q:

Meaning of a c++ function parameter type declaration

(I'm quite new to c++) In the line:
virtual void SetModifyHdl( const Link<Edit&,void>& rLink ) { maModifyHdl = rLink; }

what is the exact meaning of Link<Edit&,void>&?
It's in libreoffice code, https://github.com/LibreOffice/core/blob/master/include/vcl/edit.hxx line 233.

A:

Link<Edit&,void> is a specialization of a templated class named Link taking 2 template parameters.  Edit& and void are the values of those template parameters. 
This specialization is the type for the rLink parameter of SetModifyHdl(). The & means rLink takes a reference to an object instance of the above type. The const means the object being referenced can't be modified by SetModifyHdl(). 

