QCache не имеет метода вставки - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь использовать класс QCache, но метод вставки отсутствует ...

SqlTableModel.h

class SqlTableModel : public QSqlTableModel
{
    Q_OBJECT
public:
    Q_INVOKABLE QVariant getValue(QJSValue searchColumn, QJSValue searchValue, QJSValue returnColumn) const;

private:
    QCache <QString, QString> m_cache;
};

sql.cpp ....

QVariant SqlTableModel::getValue(QJSValue columnName, QJSValue columnKey, QJSValue returnColumnName) const
{
    QString cache_key;
    cache_key = columnName.toString() + "_" + columnKey.toString() + "_" + returnColumnName.toString();

    return m_cache.insert //?????????? auto complet=te give me nothing!
}

после попытки построить:

//error: 'this' argument to member function 'insert' has type 'const QCache<QString, QString>', but function is not marked const

//error: no matching function for call to ‘QCache<QString, QString>::insert(const char [10], QString&) const’
//     return m_cache.insert("123123123", cache_key);

Где моя проблема??? * * тысяча двадцать две

1 Ответ

0 голосов
/ 07 декабря 2018

Ваша проблема в том, что getValue - это const функция, тогда как insert из QCache не const.

Вы можете сделать свою функцию неконстантной или пометить m_cache с помощьюmutable, или создайте различные функции для вставки и получения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...