Для предоставления информации о типе вы можете использовать контекстную границу
def f[T : Manifest](a:T, b:T):Array[T] = { new Array[T](2) }
или манифест в качестве неявного аргумента:
def f[T](a:T, b:T)(implicit manifest : Manifest[T]) : Array[T] = { new Array[T](2) }
Первое - это синтаксический сахар для последующего. Манифест необходим, потому что информация о типе T отсутствует из-за общего типа errasure JVM.