草庐IT

Make_shared

全部标签

c++ - 如何在 Android NDK 和 STLport 中使用 boost 库(包括 shared_ptr)

这更像是一个答案而不是一个问题,因为我已经弄清楚了,至少就干净地编译库而言。我的主要问题是让shared_ptr工作。成分:Boostv.1.45.0http://www.anddev.org/viewtopic.php?p=29939上的STLport版本.NDK版本r4b。路线:在您的Android.mk文件中添加:LOCAL_CFLAGS+=-DBOOST_EXCEPTION_DISABLE-D_STLP_NO_EXCEPTIONS-DOS_ANDROID-D_STLP_USE_SIMPLE_NODE_ALLOC在STLport/STL/_string.h的第613行删除对__S

c++ - 一个人如何降低 std::shared_ptr?

考虑:structSomethingThatsABase{virtualboolIsChildOne()const{returnfalse;}virtualboolIsChildTwo()const{returnfalse;}};structChildOne:publicSomethingThatsABase{virtualboolIsChildOne()const{returntrue;}};structChildTwo:publicSomethingThatsABase{virtualboolIsChildTwo()const{returntrue;}};voidSomeClien

c++ - 为什么 unique_ptr 将删除器作为类型参数而 shared_ptr 没有?

std::unique_ptr模板有两个参数:指针的类型和删除器的类型。第二个参数有一个默认值,所以你通常只写std::unique_ptr.std::shared_ptr模板只有一个参数:指针的类型。但是您也可以使用自定义删除器,即使删除器类型不在类模板中。通常的实现使用类型删除技术来做到这一点。std::unique_ptr没有使用相同的想法是否有原因?? 最佳答案 部分原因是shared_ptr无论如何都需要一个显式的控制block来控制引用计数,并且在上面插入一个删除器并不是什么大不了的事。unique_ptr但是不需要任何

c++ - 为什么在 shared_ptr 只取一个时 unique_ptr 取两个模板参数?

两者unique_ptr和shared_ptr接受自定义删除器来调用他们拥有的对象。但是在unique_ptr的情况下,删除器是作为class的模板参数传递的,而shared_ptr的自定义删除器的类型是被指定为构造函数的模板参数。template>classunique_ptr{unique_ptr(T*,D&);//simplified...};和templateclassshared_ptr{templateshared_ptr(T*,D);//simplified...};我不明白为什么会有这种差异。有什么要求? 最佳答案

compiler-errors - Google Go 错误 - "cannot make type"

在我的Go代码中,我想创建一个自定义数据类型的数组。我打电话Blocks=make(*BlockData,len(blocks))我得到错误:cannotmaketype*BlockData我的BlockData类包含uint64、int64、float32、string、[]byte、[]string和[]*TransactionData等字段类型。最后一个是指向我的另一个自定义类的指针数组。我应该怎么做才能修复这个错误? 最佳答案 make()用于创建slice、贴图和channel。制作slice时,类型名称前面必须有[]。使

bash - MINGW64 "make build"错误 : "bash: make: command not found"

我正在使用Windows10。我想在MINGW64中运行“makebuild”,但出现以下错误:$makebuildbash:make:commandnotfound我要建GlideforGolang我尝试了以下操作:$sudoyuminstallbuild-essentialbash:sudo:commandnotfound还有:$yuminstallbuild-essentialbash:yum:commandnotfound还有:$apt-cygbuild-essentialbash:apt-cyg:commandnotfound我怎样才能“解决”这个问题?

go - 使用/不使用 make 创建 map

两者有什么区别varm=map[string]int{}和varm=make(map[string]int)第一个只是加快字段初始化的快捷方式吗?是否有性能方面的考虑? 最佳答案 第二种形式总是创建一个空map。第一种形式是map文字的一种特殊情况。map文字允许创建非空map:m:=map[bool]string{false:"FALSE",true:"TRUE"}现在你的(概括的)例子:m:=map[T]U{}是没有初始值(键/值对)的映射文字。完全等价于:m:=make(map[T]U)此外,make是指定map初始容量大于最

go - 解释: Don't communicate by sharing memory; share memory by communicating

我想知道对这句名言最接地气的解释是什么:Don'tcommunicatebysharingmemory;sharememorybycommunicating.(R.Pike)在TheGoMemoryModel我可以读到这个:Asendonachannelhappensbeforethecorrespondingreceivefromthatchannelcompletes.(GolangSpec)还有一个专用的golangarticle解释报价。关键贡献是workingexample也由AndrewG.嗯。有时谈论太多了....我从MemorySpec引文中得出,并通过查看工作示例得出

shared-libraries - Go 中的共享库?

是否可以使用Go创建共享库(.so)?更新:为它创建了一个“issue”。 最佳答案 现在可以使用-linkshared标志你需要做的是首先运行这个命令:goinstall-buildmode=shared-linksharedstd(上面的代码使所有常见的包都可以共享!)那么goinstall-buildmode=shared-linkshareduserownpackage最后在编译你需要运行的代码时:gobuild-linksharedyourprogram以上内容现在不是静态链接所有内容,而是动态链接它们,您最终会得到更小的

命令行查看内容 Shared Object Module(lib*.so)

查看共享对象模块(lib*.so)内容的命令行是什么?就像我们的使用方式:ar-tlib*.a用于文件(lib*.a),它显示库中的所有目标文件。EDIT1示例ar-tlib*.a给我一​​个展示:asset.osldep.o 最佳答案 使用nm-D--defined-onlylibname.so从动态库中获取符号名称。--defined-only开关只显示在这些文件中定义的符号,而不是对外部函数的引用。另一种方法是使用objdump,只捕获文本部分中的符号:objdump-T/usr/lib/libjpeg.so|greptext