草庐IT

weak-template-vtables

全部标签

c++ - Qt 未定义对 vtable 的引用

这个问题在这里已经有了答案:QtLinkerError:"undefinedreferencetovtable"[duplicate](9个回答)关闭7年前。我是Qt编程的初学者,并且在我的编程中使用代码块。我创建了3个文件c​​ommunicate.h、commmunicate.cpp和main.cpp,如下:communicate.h#ifndefCOMMUNICATE_H#defineCOMMUNICATE_H#include#include#include#includeclassCommunicate:publicQWidget{Q_OBJECTpublic:Communic

c++ - GCC 问题 : using a member of a base class that depends on a template argument

以下代码不能用gcc编译,但可以用VisualStudio编译:templateclassA{public:Tfoo;};templateclassB:publicA{public:voidbar(){cout我得到错误:test.cpp:Inmemberfunction‘voidB::bar()’:test.cpp:11:error:‘foo’wasnotdeclaredinthisscope但它应该是!如果我将bar更改为voidbar(){coutfoo然后它确实编译,但我不认为我必须这样做。GCC在此处遵循的C++官方规范中是否有某些内容,还是只是一个怪癖?

c++ - GCC 问题 : using a member of a base class that depends on a template argument

以下代码不能用gcc编译,但可以用VisualStudio编译:templateclassA{public:Tfoo;};templateclassB:publicA{public:voidbar(){cout我得到错误:test.cpp:Inmemberfunction‘voidB::bar()’:test.cpp:11:error:‘foo’wasnotdeclaredinthisscope但它应该是!如果我将bar更改为voidbar(){coutfoo然后它确实编译,但我不认为我必须这样做。GCC在此处遵循的C++官方规范中是否有某些内容,还是只是一个怪癖?

c++ - QT : Templated Q_OBJECT class

是否有可能有一个模板类,它继承自QObject(并且在它的声明中有Q_OBJECT宏)?我想为插槽创建类似适配器的东西,它会做一些事情,但插槽可以接受任意数量的参数(参数数量取决于模板参数)。我只是尝试这样做,但出现链接器错误。我猜这个模板类没有调用gmake或moc。有没有办法做到这一点?也许通过显式实例化模板? 最佳答案 模板和Q_OBJECT不能混合使用,但如果您有类型的子集,您可以像这样列出插槽和信号:classSignalsSlots:publicQObject{Q_OBJECTpublic:explicitSignals

c++ - QT : Templated Q_OBJECT class

是否有可能有一个模板类,它继承自QObject(并且在它的声明中有Q_OBJECT宏)?我想为插槽创建类似适配器的东西,它会做一些事情,但插槽可以接受任意数量的参数(参数数量取决于模板参数)。我只是尝试这样做,但出现链接器错误。我猜这个模板类没有调用gmake或moc。有没有办法做到这一点?也许通过显式实例化模板? 最佳答案 模板和Q_OBJECT不能混合使用,但如果您有类型的子集,您可以像这样列出插槽和信号:classSignalsSlots:publicQObject{Q_OBJECTpublic:explicitSignals

c++ - 对 'vtable for xxx' 的 undefined reference

takeaway.o:Infunction`takeaway':project:145:undefinedreferenceto`vtablefortakeaway'project:145:undefinedreferenceto`vtablefortakeaway'takeaway.o:Infunction`~takeaway':project:151:undefinedreferenceto`vtablefortakeaway'project:151:undefinedreferenceto`vtablefortakeaway'takeaway.o:Infunction`gameC

c++ - 对 'vtable for xxx' 的 undefined reference

takeaway.o:Infunction`takeaway':project:145:undefinedreferenceto`vtablefortakeaway'project:145:undefinedreferenceto`vtablefortakeaway'takeaway.o:Infunction`~takeaway':project:151:undefinedreferenceto`vtablefortakeaway'project:151:undefinedreferenceto`vtablefortakeaway'takeaway.o:Infunction`gameC

c++ - shared_from_this 导致 bad_weak_ptr

我正在尝试在asio中保留已连接客户端的列表。我已经从文档(http://www.boost.org/doc/libs/1_57_0/doc/html/boost_asio/example/cpp03/chat/chat_server.cpp)中改编了聊天服务器示例,这是我最终得到的重要部分:#include#include#include#include#include#includeusingboost::asio::ip::tcp;classtcp_connection;std::set>clients;voidadd_client(boost::shared_ptrclient

c++ - shared_from_this 导致 bad_weak_ptr

我正在尝试在asio中保留已连接客户端的列表。我已经从文档(http://www.boost.org/doc/libs/1_57_0/doc/html/boost_asio/example/cpp03/chat/chat_server.cpp)中改编了聊天服务器示例,这是我最终得到的重要部分:#include#include#include#include#include#includeusingboost::asio::ip::tcp;classtcp_connection;std::set>clients;voidadd_client(boost::shared_ptrclient

c++ - 如何在 C++ 中实现 "virtual template function"

首先:我已经阅读并且我现在知道在C++中虚拟模板成员函数(还没有?)是不可能的。一种解决方法是将类设为模板,然后在成员函数中也使用模板参数。但是在OOP的上下文中,如果类实际上是一个模板,我发现下面的示例将不是很“自然”。请注意,代码实际上不起作用,但gcc-4.3.4报告:error:templatesmaynotbe'virtual'#include#includeclassAnimal{public:templatevirtualvoideat(AMOUNTamount)const{std::coutvoideat(AMOUNTamount)const{std::coutvoid