VS 2017错误C2665'qHash':30个重载均不能转换所有参数类型

时间:2019-03-08 08:06:40

标签: qt visual-studio-2017 qhash

我将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。

0 个答案:

没有答案