草庐IT

weakly-referenced

全部标签

c++ - 如果我碰巧注意到它已过期,我应该在 weak_ptr 上调用 reset 吗?

我收藏了Creature使用std::make_shared在我的应用程序的一部分中创建和拥有的对象和std::shared_ptr.我还跟踪了零个或一个的选择Creature在World使用std::weak_ptr的对象.voidWorld::SetSelection(conststd::shared_ptr&creature){selection=creature;}std::shared_ptrWorld::GetSelection()const{returnselection.lock();}GetSelection的来电者负责检查指针是否为空。如果是,则表示当前没有选择。T

c++ - 如果过期的 weak_ptr 会给出未定义的行为,那么 owner_less 有什么意义呢?

请顾及我的经验不足,不明白std::owner_less的意义.我已经shown那一个map与weak_ptr不推荐作为key,因为已过期weak_ptrkey会破坏map,实际上:Ifitexpires,thenthecontainer'sorderisbroken,andtryingtousethecontainerafterwardswillgiveundefinedbehaviour.这种行为有多不确定?我问的原因是因为docs说说owner_less:Thisfunctionobjectprovidesowner-based(asopposedtovalue-based)mi

c++ - 为什么 weak_ptr 可以打破循环引用?

我学到了很多关于weak_ptr与share_ptr一起使用来打破循环引用的知识。它是如何工作的?如何使用它?任何人都可以给我一个例子吗?我完全迷失在这里。还有一个问题,什么是强指针? 最佳答案 强指针持有对象的强引用——意思是:只要指针存在,对象就不会被销毁。对象不“知道”每个指针,只知道它们的编号——这就是强引用计数。weak_ptr会“记住”对象,但不会阻止它被销毁。你不能通过弱指针直接访问对象,但你可以尝试从弱指针创建一个强指针。如果该对象不再存在,则生成的强指针为空:shared_ptrsp(newint);weak_pt

c++ - 如何制作 std::weak_ptr 的 c++11 std::unordered_set

我有一个这样的集合:set,owner_less>>setName;它工作正常。但我想将其更改为无序集。但是,当我这样做时,我得到了大约六页错误。有什么想法吗?在查看所有页面的错误消息后,我找到了可能有帮助的行。/usr/include/c++/4.7/bits/functional_hash.h:60:7:error:staticassertionfailed:std::hashisnotspecializedforthistype/usr/include/c++/4.7/bits/stl_function.h:Ininstantiationof‘boolstd::equal_to:

c++ - 当 weak_ptr 的 shared_ptr 被销毁时会发生什么?

似乎是一个weak_ptr不知何故只知道什么时候shared_ptr它的引用已被销毁。那个怎么样?是否维护了一个恒定的链接或其他东西?取followingcodeforexample:weak_ptrtest(){shared_ptrfoo{newint};returnfoo;}intmain(){autofoo=test();cout当weak_ptr时,我预计会出现段错误去检查shared_ptr的状态但没有一个。weak_ptr正确地将内存识别为已释放。它怎么知道的? 最佳答案 Astd::shared_ptr使用两block

c++ - 如何告诉 link.exe 使用 wmain 作为入口点。 LNK2019 : unresolved external symbol main referenced in function __tmainCRTStartup

我有一个通过visualstudio构建和链接的项目,但不是通过我们的构建系统。据我所知,如果定义了UNICODE,tchar.h包含一个将_tmain转换为wmain的宏。我检查了预处理器输出,确实_tmain已被wmain替换。包含wmain的文件随后编译得很好,但链接器提示main未定义。LNK2019:函数__tmainCRTStartup中引用的未解析外部符号mainwmain是否被我没有正确包含的另一组宏转换为main(由于缺少-D选项等),或者link.exe是否有一个指定入口点的特殊标志。谢谢。手动指定/entry:mainCRTStartup修复了它。编辑:我刚刚检查

windows - 如何解决LNK2019 unresolved external symbol DriverEntry referenced in function GsDriverEntry?

当我编译这个项目时https://github.com/namazso/hdd_serial_spoofer我收到上面的错误信息,我该如何解决?我正在使用vs2017和wdk10。(必须在release中编译,不支持Debug模式。本项目中没有DriverEntry函数,hwid.cpp中的EntryPoint(void*ntoskrn,void*image,void*alloc)函数才是真正的入口点。)我做了很多研究,但还是没能成功。我是内核模式驱动程序开发的菜鸟。 最佳答案 该项目使用(一个明显被忽略的)选项定义EntryPoi

python - 未绑定(bind)本地错误 : local variable 'full_path' referenced before assignment

将Window764位与Python2.7和Django1.4结合使用。MicrosoftWindows[Version6.1.7601]Copyright(c)2009MicrosoftCorporation.Allrightsreserved.C:\Django-1.4\django\bin\cms2>manage.pysyncdbCreatingtables...InstallingcustomSQL...Installingindexes...Traceback(mostrecentcalllast):File"C:\Django-1.4\django\bin\cms2\man

windows - 如何在 Windows UAP 应用程序中解决 "' IAsyncActionWithProgress< >' is defined in an assembly that is not referenced"

我正在VisualStudioUltimateCTP2015(网站上提供的最新应用程序)中开发一个WindowsUAP应用程序。我在对返回IAsyncActionWithProgress、IAsyncAction、IAsyncOperation和IAsyncOperationWithProgress的函数使用await时遇到问题。我收到以下错误错误CS0012“IAsyncActionWithProgress”类型在未引用的程序集中定义。您必须添加对程序集“Windows,Version=255.255.255.255,Culture=neutral,PublicKeyToken=nu

android - "can' t find referenced class"with Proguard and Kotlin

我在使用proguard和kotlin时遇到了一个奇怪的问题。我正在逐渐将一个proguarded项目转换为kotlin-到目前为止效果很好,但是在转换某些类时我遇到了proguard错误。我还不能分离出这些类的特殊属性是什么,所以它坏了——它们似乎与其他类没有什么不同。例如InputStreamWithSource只是:packageorg.ligi.passandroid.modelimportjava.io.InputStreamclassInputStreamWithSource(valsource:String,valinputStream:InputStream)它完全可以