草庐IT

pimpl_ptr

全部标签

go - golang asm 代码中的未知 "ptr"变量

最近刚开始看atomic.LoadUint64的源码,在下面的asm代码中得到了一个未知的变量“ptr”:TEXTruntime∕internal∕atomic·Load64(SB),NOSPLIT,$0-12MOVLptr+0(FP),AXTESTL$7,AXJZ2(PC)MOVL0,AX//crashwithnilptrderefMOVQ(AX),M0MOVQM0,ret+4(FP)EMMSRET我找不到这个变量的声明,也找不到任何关于这个变量的文档,谁能告诉我吗? 最佳答案 AQuickGuidetoGo'sAssembler

reflection - Reflect 认为 struct Value 也是一个 ptr?

我有一个类似这个演示的数据结构。如您所见,foo有一个指向bar的嵌入式指针:typefoostruct{*bar}typebarstruct{S[]byte}我正在像这样使用reflect包:functest(xinterface{}){varv=reflect.ValueOf(x)ifv.Kind()==reflect.Struct{fmt.Println("wasastruct")//panic:reflect:callofreflect.Value.ElemonstructValue//v=v.Elem()//panic:reflect:callofreflect.Value.

c++ - eclipse 中的 unique_ptr 自动完成

我正在玩unique_ptr。在我的lastpost人们通过在编译期间指定-std=c++0x帮助我编译了一个使用此指针的程序。现在我想知道是否有任何方法可以指示eclipse在自动完成时考虑c++11?unique_ptr不在std::命名空间的列表中,我也找不到与unique_ptr关联的方法(重置、移动...)。谢谢瓦赫德 最佳答案 “内存”头文件(可能位于/usr/include/c++/4.9/memory)仅包含“unique_ptr.h”和“shared_ptr.h”(可能位于/usr/include/c++/4.9/

PHP 依赖注入(inject) - Pimple 等。 - 为什么使用关联数组与 getter?

我们正在考虑将依赖注入(inject)容器集成到我们的项目中。我看过的每个DIC都使用关联数组和/或魔法方法。例如,这是来自Pimple页面的示例:$container['session_storage']=function($c){returnnew$c['session_storage_class']($c['cookie_name']);};$container['session']=function($c){returnnewSession($c['session_storage']);};这是有原因的吗?我讨厌在我的代码中将字符串作为将要显示在某处的文字字符串以外的任何内容。

c++ - 我怎么知道谁持有 shared_ptr<>?

我使用boost::shared_ptr在我的C++应用程序中。内存问题真的很严重,应用程序占用大量内存。但是,因为我将每个新对象放入shared_ptr,当应用程序退出时,不会检测到内存泄漏。必须有std::vector>之类的东西持有资源的池。我怎么知道谁持有shared_ptr,什么时候调试?很难逐行查看代码。代码太多... 最佳答案 仅通过查看shared_ptr,您无法知道“兄弟指针”在哪里。您可以测试一个是否为unique()或获取use_count(),其中othermethods.

c++ - 在库的公共(public)接口(interface)中使用 boost::shared_ptr

我们有一个C++库,我们提供给几个不同的客户。最近,我们从在公共(public)接口(interface)中使用原始指针切换到使用boost::sharedptr。正如您可能猜到的那样,这提供了巨大的好处,因为现在客户不再需要担心谁需要删除什么以及何时删除。当我们进行转换时,我认为这是正确的做法,但让我感到困扰的是,我们必须在我们的公共(public)界面中包含来自第三方库的东西——通常,如果可以的话,你会避免这种事情。我合理化了boost现在实际上是C++语言的一部分,我们的用例要求客户端代码和库都保存指向对象的指针。然而最近我们的一个客户问我们是否可以切换到在接口(interfac

c++ - 在 VS1012 中使用 std::move 将 std::unique_ptr 发送到 std::thread

在VisualStudio2012中出现以下错误。voiddo_something(std::unique_ptri);std::unique_ptri(newint);std::thread(do_something,std::move(i));Error3errorC2248:'std::unique_ptr::unique_ptr':cannotaccessprivatememberdeclaredinclass'std::unique_ptr'c:\programfiles(x86)\microsoftvisualstudio11.0\vc\include\functional

c++ - 从隐式转换中复制构造 shared_ptr 有什么问题?

考虑这个最小的例子:#includestructB{typedefstd::shared_ptrPtr;};structA{operatorB::Ptr(){//typeconversionoperator();//|}//|};//|//|intmain(){//|A*a=newA;//|B::Ptr{*a};//copyconstructionfroma'simplicitcasttoB::Ptr----+}shared_ptr的这种无辜的复制结构在g++4.6.3x86_64-linux-gnu上严重失败,但似乎适用于g++4.5(请注意,较新的版本中断,而较旧的版本有效!)。从

c++ - 嵌套的 shared_ptr 破坏导致堆栈溢出

这更像是一个设计问题(我知道为什么会这样,只是想看看人们如何处理它)。假设我有一个简单的链表struct:structList{inthead;std::shared_ptrtail;};shared_ptr允许在多个列表之间共享子列表。但是,当列表变得很长时,其析构函数中可能会发生堆栈溢出(由shared_ptrs的递归释放引起)。我尝试过使用显式堆栈,但这变得非常棘手,因为一个尾部可以由多个列表拥有。如何设计我的List来避免这个问题?更新:澄清一下,我不是在重新发明轮子(std::forward_list)。上面的List只是真实数据结构的简化版。真正的数据结构是一个有向无环图,

c++ - 通过weak_ptr创建单例类是否正确

我创建了一个父类来处理带有智能指针的单例模式:.h文件:templateclassSingleton{public:staticstd::shared_ptrGetInstance();private:staticstd::weak_ptrm_singleObject;};.cpp文件:templatestd::shared_ptrSingleton::GetInstance(){autoshareObject=m_singleObject.Lock();if(!shareObject){shareObject.reset(newsingleType);m_singleObject=s