+#define CPPLUGINS_PROVIDER_HEADER_END };
+
+// -------------------------------------------------------------------------
+#define CPPLUGINS_PROVIDER_HEADER( TYPE ) \
+ CPPLUGINS_PROVIDER_HEADER_BEGIN( TYPE ) \
+ virtual TYPE::Pointer create( ) const = 0; \
+ CPPLUGINS_PROVIDER_HEADER_END