template function array