我有这种方法:

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>)


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

最佳答案

只需将其指定为模板参数即可,如@chris所说。

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

关于c++ - 如何帮助编译器推断模板参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24984408/

10-11 21:29