Use backtrack to parse tempalte, support foreach, default array type is shared_ptr<vector>.