Issue with QHash
Issue with QHash
我一直在努力让这个工作,但它只是拒绝工作。我读了QT文档,我只是无法得到插入函数的功能。当我构建时,我得到以下复杂错误
/home/mmanley/projects/StreamDesk/libstreamdesk/SDDatabase.cpp: In constructor 'SDDatabase::SDDatabase()':
/home/mmanley/projects/StreamDesk/libstreamdesk/SDDatabase.cpp:27:44: error: no matching function for call to 'QHash<QString, SDChatEmbed>::insert(const char [9], SDChatEmbed (&)())'
/usr/include/qt4/QtCore/qhash.h:751:52: note: candidate is: QHash<Key, T>::iterator QHash<Key, T>::insert(const Key&, const T&) [with Key = QString, T = SDChatEmbed]
make[2]: *** [libstreamdesk/CMakeFiles/streamdesk.dir/SDDatabase.cpp.o] Error 1
make[1]: *** [libstreamdesk/CMakeFiles/streamdesk.dir/all] Error 2
头文件:
class SDStreamEmbed {
Q_OBJECT
public:
SDStreamEmbed();
SDStreamEmbed(const SDStreamEmbed &other);
QString FriendlyName() const;
SDStreamEmbed &operator=(const SDStreamEmbed &other) {return *this;}
bool operator==(const SDStreamEmbed &other) const {return friendlyName == other.friendlyName;}
private:
QString friendlyName;
};
Q_DECLARE_METATYPE(SDStreamEmbed)
inline uint qHash(const SDStreamEmbed &key) {
return qHash(key.FriendlyName());
}
和实现
SDStreamEmbed::SDStreamEmbed() {
}
SDStreamEmbed::SDStreamEmbed(const SDStreamEmbed& other) {
}
QString SDStreamEmbed::FriendlyName() const {
return friendlyName;
}
和我如何调用它
SDChatEmbed embedTest();
ChatEmbeds.insert("DemoTest", embedTest);
和ChatEmbeds的定义
QHash<QString, SDStreamEmbed> StreamEmbeds;
Replace:
SDChatEmbed embedTest();
:
SDChatEmbed embedTest;
编译器将第一行解释为函数声明。这在错误消息中是可见的:它为第二个参数推断出以下类型:
SDChatEmbed (&)()
这是一个函数签名
我不认为你需要为第一个参数显式的QString
强制转换/构造,因为QString
有一个接受const char*
的构造函数,因此应该自动转换。
相关文章:
- Problems with std::cin.fail()
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- Boost.TEST with CLion: "Test framework quit unexpectedly"
- 避免碎片化的ClientHellos with OpenSSL (DTLS)
- Issues with Win32 ReadProcessMemory API
- Qt with WinAPI MouseProc
- [[maybe_unused]] with structured_binding?
- Issue with WriteProcessMemory
- OpenCV RTP-Stream with FFMPEG
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- std::adjacent_difference with std::chrono time_point
- 如何使用 std::string 作为 QHash 的键?
- DLL Made with CMake 使程序崩溃
- QtCreator with C 库中的链接器问题
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- 在类中初始化 QHash
- specialized std::default_delete with QQmlComponent
- VS2019 - Sudo Remote Debugging on Linux with Cmake project
- Issue with QHash