VS 2017 Ошибка C2665 «qHash»: ни одна из 30 перегрузок не может преобразовать все типы аргументов - PullRequest
0 голосов
/ 08 марта 2019

Я использую QHash для небольшой программы.

CompleterData.h

#include <QMap>
#include <QList>
#include <QHash>
#include <QPair>
#include <QVariant>

class CompleterData
{

public:
  enum class Type
  {
     Header,       
     SecondHeader, 
     Data,         
     LastUsed      
  };

  CompleterData() = default;

  QHash < CompleterData::Type, QList<QPair<QString, QVariant>>> data();
  void setData( QHash < CompleterData::Type, QList<QPair<QString, QVariant>>> &p_data );
  void addData( CompleterData::Type &p_type,  QList<QPair<QString, QVariant>> &p_rowData );

private:
  QHash <CompleterData::Type, QList<QPair<QString, QVariant>>> m_data;
};

CompleterData.cpp

QHash < CompleterData::Type, QList<QPair<QString, QVariant>>> CompleterData::data()
{
  return m_data;
}

void CompleterData::addData( CompleterData::Type &p_type,  QList<QPair<QString, QVariant>> &p_rowData )
{
  m_data.insert( p_type, p_rowData );
}

void CompleterData::setData( QHash < CompleterData::Type, QList<QPair<QString, QVariant>>> &p_data )
{
  m_data = p_data;
}

Я получаю эту ошибку при компиляции enter image description here

Где у меня ошибка в этом случае.Я знаю, что такого рода ошибки публикуются здесь очень много раз, но у каждого случая есть своя причина, и даже для этого простого случая я до сих пор не могу найти причину, почему?Я использую VS 2017.

...