1 2\input{header} 3\begin{tikzpicture}[scale=0.91, transform shape] 4 5\newnamedcomponent{0}{2.5}{bind1}{bind} 6\newnamedcomponent{0}{0}{bind2}{bind} 7\umlprovidedinterface[interface=Impl, distance=2, padding=0.9cm]{bind1} 8\umlrequiredinterface[interface=Interface, distance=2.2, padding=0.9cm]{bind1} 9\umlprovidedinterface[interface={std::function<std::unique\_ptr<Impl(T1,..,Tn)>()>}, distance=5.2, padding=0.9cm]{bind2} 10\umlrequiredinterface[interface={std::function<std::unique\_ptr<Interface(T1,..,Tn)>()>}, distance=5.7, padding=0.9cm]{bind2} 11\node at (8.8,-0.2) {(for any types T1,...,Tn)}; 12 13\end{tikzpicture} 14\input{footer} 15