template with exact function require same form in and out of template