如何帮助编译器推导出模板参数?

时间:2014-07-27 18:50:59

标签: c++ templates

我有这个方法:

template <typename Type>
static QList<Type> comboListToItemsList(QList<QList<QVariant>>& comboList) {
    QList<Type> itemsList;
    if (comboList.length() > 0) {
        foreach (QList<QVariant> dbItem, comboList) {
            Type item(dbItem);
            itemsList.append(item);
        }
    }
    return itemsList;
}

当我打电话给他时:

QList<SettingItem> settingItems = 
(QList<SettingItem>) DatabaseManager::comboListToItemsList(result.first);

它“无法推断模板参数类型”。我如何通过添加

来更好地帮助编译器解决问题
(QList<SettingItem>)

?我有创建方法的子类名称的枚举,但是我真的不知道如何在这里使用它......

1 个答案:

答案 0 :(得分:5)

只需将其指定为模板参数,就像@chris所说。

QList<SettingItem> settingItems = DatabaseManager::comboListToItemsList<SettingItem>(result.first);