Admittedly I haven't given details for PBD::Signal but basically it's a cross-platform class for generating and handling signals.

Anyway... the following code compiles with most C++17 compilers, including (on Windows) Clang

But MSVC tells me illegal use of type void

Code:
#include "pbd/signals.h"

class Destructible {
public:
	virtual ~Destructible () { Destroyed(); }

	PBD::Signal<void()> Destroyed;
};