草庐IT

weak-template-vtables

全部标签

c++ - 使用不遵循 'strict weak ordering' 的比较函数对列表进行排序

我有一个包含10个项目的列表。我想以特定方式对它们进行排序。例如。项目是A1,B,C1,A2,A3,F,G,C2,H,A4规则是C应该总是在A之前B应该总是在A之后所有其他项目应保持其顺序。所以排序后列表应该是这样的顺序C1C2A1A2A3FGHA4B我正在尝试使用C++std::stable_sort()方法来实现这一点。在我的程序中,所有项目都是结构“SItem”的实例,它有一个成员“type”来指示其类别(A、B等)。我的比较函数是这样的boolCompareItems(SItemconst&item1,SItemconst&item2){if(item1.type==A&&it

c++ - "Template argument for template template parameter must be a class template or type alias template"

templatestructList{};templateclass>structListHelper;templatestructListHelper>{};^/*Error:Templateargumentfortemplatetemplateparametermustbeaclasstemplateortypealiastemplate*/怎么了?我正在使用clang++SVN。 最佳答案 您有一个模板模板参数。您必须传递一个模板作为其参数。您改为将模板实例化作为其参数传递-这是一个具体类,而不是模板(其所有参数均已绑定(bi

c++ - 使用gdb的C++多态类中的vtable

这个问题在这里已经有了答案:PrintC++vtablesusingGDB(5个答案)关闭6年前。如何使用指向具有虚函数的基类对象的指针来显示虚表?

c++ - 专门化成员函数时出现 "too many template-parameter-lists"错误

我想像这样在模板类中定义一些模板成员方法:templateclassCallSometing{public:voidcall(TtObj);//1sttemplatevoidcall(TtObj,AaObj);//2ndtemplatetemplatevoidcall(TtObj,AaObj,BbObj);//3rd};templatevoidCallSometing::call(TtObj){std::couttemplatevoidCallSometing::call(TtObj,AaObj){std::couttemplatetemplatevoidCallSometing::c

c++ - 最好返回 C++ 引用或 weak_ptr?

假设我有一个类,我希望用户能够在其中引用我的成员之一。哪个更受欢迎?classMember;classClassWithWeakPtr{private:boost::shared_ptr_member;public:boost::weak_ptrGetMember();};或classMember;classClassWithCppReference{private:Member_member;public:Member&GetMember(){return_member;}};你怎么看?什么时候比另一个更好? 最佳答案 为什么不返

c++ - 从原始指针创建 weak_ptr<>

我想将原始指针成员包装到一些智能指针,以防止在开发类中删除。指针下对象的所有者在类之外。所以,看起来像boost::shared_ptr和std::auto_ptr不适合。以下是简化的示例:classFoo{boost::weak_ptrm_bar;public:voidsetBar(constBar*bar){//barcreatedonheapm_bar=bar;//naturallycompilationerror}};当然会导致编译错误。从原始指针(如果存在)初始化weak_ptr的正确方法是什么? 最佳答案 你不能那样做,

c++ - weak_ptr 如何知道共享资源已过期?

考虑以下代码:#include#includeusingnamespacestd;structMySharedStruct{inti;};voidprint_value_of_i(weak_ptrweakPtr){if(shared_ptrsp=weakPtr.lock()){coutisharedPtr(newMySharedStruct());sharedPtr->i=5;weak_ptrweakPtr;weakPtr=sharedPtr;print_value_of_i(weakPtr);sharedPtr.reset(newMySharedStruct());//i=10;pr

c++ - 缺少 shared_ptr 和 weak_ptr 之间的相等性

虽然我明白为什么shared_ptr和unique_ptr没有operator==,但我想知道为什么没有shared_ptr和weak_ptr。特别是因为您可以通过对shared_ptr的引用创建一个weak_ptr。我假设在99%的时间里您都需要lhs.get()==rhs.get()。我现在会继续将其引入我的代码,除非有人能给我一个很好的理由,为什么不应该做这样的事情。 最佳答案 weak_ptr没有get()方法,因为您需要在访问底层指针之前显式锁定weak_ptr。明确这一点是一个深思熟虑的设计决定。如果转换是隐式的,那么很

c++ - 如何确定 C++ 类是否具有 vtable?

我的一个friend今天早些时候向我发送了以下挑战:Giventhefollowingcode,proposeanimplementationofOBJECT_HAS_VTABLEsotheprogramprintsAnObjecthasavtable=0,AnObjectWithVTablehasavtable=1.classAnObject{intm_a;voidDoSomething(){}public:AnObject(){m_a=0;}};classAnObjectWithVTable{intm_b;virtualvoidDoStuff(){}public:AnObjectW

windows - Windows 是否存在带有标签的程序员的 "document template"?

我想知道(如果可能)是否有一个程序/工具/实用程序可以在我创建新文件并为其提供扩展名时自动创建适当的标签?例如,我创建的名为index.php的新文件将在其中自动生成适当的标签:希望您能理解。有关此的任何信息都会有所帮助。 最佳答案 我不知道可移植实用程序,但在Windows上,有一个内置功能可以做到这一点。从regedit,转到您的HKCR/.your-extension(例如HKCR/.php)。(默认)值将包含文件类型类-转到HKCR/.your-extension/the-filetype-class或HKCR/the-fi