
\input{header}
\begin{tikzpicture}[scale=1, transform shape]

\newnamedcomponent{0}{2.5}{registerConstructor1}{registerConstructor}
\newnamedcomponent{0}{0}{registerConstructor2}{registerConstructor}
\umlprovidedinterface[interface=GreeterImpl, distance=3.3, padding=0.9cm]{registerConstructor1}
\umlrequiredinterface[interface=Writer, distance=3, padding=0.9cm]{registerConstructor1}
\umlprovidedinterface[interface=std::function<std::unique\_ptr<GreeterImpl>()>, distance=6, padding=0.9cm]{registerConstructor2}
\umlrequiredinterface[interface=Writer, distance=3, padding=0.9cm]{registerConstructor2}

\end{tikzpicture}
\input{footer}
