function atributes
template constraint