POD型のデフォルトコンストラクタ呼び出しは0初期化
そして非explicitコンストラクタの場合
> T a = 100; // 代入したいんじゃない
> T b(100); // 初期化したいんだ
このふたつは等価だから

template <typename T>
void func(){T t = T();}
と書けばTがPODでも初期化できる