I provide a SDK to my users, allowing them to write DLLs in C++ for expanding the software.

The SDK headers mostly contain interface class definitions. These class are of two types:

* Some that the user must subclass and implement
* Some that are wrappers to core classes, passed by the app to the DLL functions as pointers, which can then be used as arguments by the DLL code for calling core functions. These interfaces should not be subclassed by the user and passed to the core functions, as they expect a specific core subclass.

I write in the manual the interfaces that should not be subclassed, and only used through pointers on objects provided by the app. But at some places, it's too tempting to subclass them in the SDK if you do not read the manual.

Would it be possible to prevent subclassing some interfaces in the SDK headers?