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