class Foo<T> {}

class Bar {
    var foos = [Foo]()
}

上記のようにすると "Generic parameter 'T' could not be inferred" というエラーが出てコンパイルが通りません。

var foos = [Foo<String>]()

のようにGenericパラメーターを定めればコンパイルは通りますが、Tの型に関わらずFooを保持することはできないでしょうか?
(Javaのワイルドカード指定、Foo<*>のような扱い方)

別途プロトコルを作ってFooに実装するしかないでしょうか?