V knize o metaprogramování v C++ píšou, že něco jako "template<typename T> class C" je "funktor", ovšem bez nějakého bližšího kontextu. Může mi někdo polopatisticky vysvětlit, co to je funktor a jak to je relevantní pro C++?
Tyto "funktory" jsou v každém jazyce s generickými typy, až na to, že to nejsou funktory (podle definice), protože nefungují na morfismech, takže čistě formálně je to funkční restrikce funktoru pomíjející morfismy. A polopatě: "a functor is a function taking objects of a category to objects of another category". V jazycích jako C++, Java, Swift, Go apod. jde o kategorii typů. Čili třeba z int udělám C<int>, kde C je ten "funktor" přiřazující typu int onen složitější typ. Toť vše. S operátorem () to nijak nesouvisí, v Javě to je úplně stejné.