jjzjj

Initialize

全部标签

C++ 构造函数 : Initialize local variable before initializer list

如何在构造函数中(在堆栈上)存储初始化列表所需的临时状态?例如,实现这个构造函数……//configabstraction.h#includeclassConfigAbstraction{public:ConfigAbstraction(std::istream&input);private:intm_x;intm_y;intm_z;};...使用这样的有状态助手类?//mysillyparserdontworry.h#include//jsoncppclassMySillyParserDontWorry{public:MySillyParserDontWorry(std::istre

c++ - 如何覆盖 Py_GetPrefix()、Py_GetPath()?

我正在尝试嵌入Python解释器,需要自定义Python标准库的加载方式。我们的库将从与可执行文件相同的目录加载,而不是从prefix/lib/。我们通过在调用Py_Initialize()后手动修改sys.path成功地完成了这项工作,但是,这会产生一个警告,因为Py_Initialize正在./lib/中寻找site.py,并且它直到Py_Initialize之后才出现已被调用,我们已更新sys.path。Pythonc-api文档提示可以覆盖Py_GetPrefix()和Py_GetPath(),但没有说明如何覆盖。有谁知道我将如何覆盖它们? 最佳答案

C++ 标准 : return by copy to initialize a reference without RVO: is there any copy?

让我们考虑下一个示例:structbig_type{};//Returnbycopyautofactory(){returnbig_type{};}voidany_scope_or_function(){big_type&&lifetime_extended=factory();}假设RVO被禁止或根本不以任何方式存在,big_type()是否会或可以被复制?还是将引用直接绑定(bind)到return语句中构造的临时对象?我想确保big_type析构函数仅在any_scope_or_function结束时被调用一次。我使用C++14,以防某些行为在标准版本之间发生变化。

当使用node_modules/.bin/webpack时,无法读取未定义的属性(mix.initialize())

我正在尝试编译node_modules/.bin/webpack我得到了这个错误:Mix.initialize();^TypeError:Cannotreadproperty'initialize'ofundefinedatObject.(/home/vagrant/Code/stream/webpack.config.js:9:4)atModule._compile(module.js:570:32)atObject.Module._extensions..js(module.js:579:10)atModule.load(module.js:487:32)attryModuleLoad(m

python - Py_Initialize 运行需要哪些文件?

我正在编写一段从C/C++应用程序运行Python函数的简单代码。为了做到这一点,我设置了PYTHONPATH并按如下方式运行初始化:Py_SetPythonHome("../Python27");Py_InitializeEx(0);然后我导入我的模块并运行我的函数。它工作得很好。我现在正在尝试为我的同事构建一个安装程序来运行我的代码。出于显而易见的原因,我想尽量减少需要包含在此安装程序中的文件数量。谷歌搜索这个主题告诉我,我应该能够包含文件“Python27.lib”和“Python27.dll”,然后压缩“DLL”和“Lib”文件夹并包含它们。但是,当我尝试这样做时,Py_Ini

c++ - 如何在 Microsoft Visual C++ 中导入 dllimport

我有一个DLL,我想使用它的一些功能。#includeusingnamespacestd;extern"C"__declspec(dllimport)intInitialize(char*localPort,char*adminServerName,intrpcTimeout);intmain(){intres=Initialize("7864","6000@kabc",10000);return0;}我没有DLL的.lib文件,所以无论如何我都可以链接到它。我想到的一件事是使用LoadLibrary函数,然后使用GetProcAddress()。还有其他办法吗?当我编译下面的代码时错

c++ - 如果用户使用 Rice 在 Ruby 中重新定义 initialize(),则避免 C++ 代码中的段错误

在为Ruby编写C++扩展时,我一直在努力解决的一个问题是,即使用户做了愚蠢的事情,也要让它真正安全。那时他应该得到异常,但绝不是SegFault。一个具体的问题如下:我的C++类有一个非平凡的构造函数。然后我使用RiceAPI来包装我的C++类。如果用户在他的Ruby代码中重新定义了initialize(),那么Rice创建的initialize()函数就会被覆盖,对象既不会被分配也不会被初始化。一个玩具示例如下:classPerson{public:Person(conststring&name):m_name(name){}conststring&name()const{retu

c++ - 为什么一个 ctor 不能调用另一个 ctor 来初始化对象

classFoo{public:Foo(){Foo(1)}Foo(intx,inty=0):i(x){}private:inti;}任何人都可以给我一些关于我可以这样做的理由吗?如果不是,为什么? 最佳答案 因为语言规范不允许。语言就是这样。如果您习惯使用Java或其他允许它的语言,那将非常烦人。但是,一段时间后您就会习惯它。所有语言都有其怪癖,这只是C++的其中一种。我相信规范的编写者有他们的理由。我发现最好的解决方法是创建一个通用的初始化函数并让两个构造函数都调用它。像这样:classFoo{public:Foo(){initi

objective-c - iOS 应用程序中 _class_initialize 中的 semaphore_wait_signal_trap 死锁

我的一个实体托管对象需要设置一个仅运行时的树状结构,其中节点是NSObject的子类(它们不是托管对象)。我在两个地方设置了那个结构(并因此分配了一堆节点):当创建一个新的此类托管对象时:一切正常。当读回现有的托管对象时,在其awakeFromFetch方法中。这就是我遇到问题的地方:对Node*newNode=[Nodealloc];的调用永远不会返回。我可以中断使用调试器,并且代码卡在semaphore_wait_signal_trap中。这是完整的调用堆栈:#00x937ac0e2insemaphore_wait_signal_trap()#10x937b1be6inpthrea

在docker里使用gpu的解决方案(镜像内安装驱动使用nvidia-smi后显示Failed to initialize NVML: Driver/library version mismatch)

要么在docker环境内安装nvidia-driver但容易和外面的版本不一致导致各种报错versionmismatch之类的不如使用nvidia-docker,这是一个nVidia官方为了方便在docker镜像容器内使用gpu做的包:1.保证docker环境内没有nvidia驱动程序,防止后续配置出现驱动版本不一致的情况    找到你要使用gpu的镜像,进入镜像删除相关驱动包:sudoapt-get--purgeremove"*nvidia*"2.docker镜像外下载ubuntu-container-toolkit并安装并重启docker(要不然docker找不到刚装的toolkit)su