草庐IT

pybind11

全部标签

c++ - 什么会导致 D3D11CreateDevice() 因 E_FAIL 而失败?

我正在使用以下代码调用D3D11CreateDevice():ID3D11Device*md3dDevice;ID3D11DeviceContext*md3dImmediateContext;D3D_DRIVER_TYPEmd3dDriverType=D3D_DRIVER_TYPE_HARDWARE;createDeviceFlags=D3D11_CREATE_DEVICE_DEBUG;HRESULThr=D3D11CreateDevice(0,md3dDriverType,0,createDeviceFlags,0,0,D3D11_SDK_VERSION,&md3dDevice,&f

c++ - 非本地 C++11 lambda 是否存在于匿名 namespace 中?

GCC4.8的最新版本在头文件中提供了以下代码:autoL=[](){};structS{decltype(L)m;};以下警告:test.hpp:3:8:warning:'S'hasafield'S::m'whosetypeusestheanonymousnamespace[enabledbydefault]structS^为什么编译器会考虑使用匿名命名空间的lambda类型?我将lambda设为全局,我没有在任何地方使用匿名命名空间。更新:即使我将lambda放在显式命名空间中,编译也会给出相同的警告,如下所示:namespaceN{autoL=[](){};}structS{de

c++ - 如何告诉 scons 使用 C++11 标准

我没找到如何告诉scons接受c++11标准:SConstruct文件:env=Environment(CPPPATH='/usr/include/boost/',CPPDEFINES=[],LIBS=[],SCONS_CXX_STANDARD="c++11")env.Program('Hello',Glob('src/*.cpp'))cpp文件:#includeclassA{};intmain(){std::cout调用scons时的错误信息:scons:ReadingSConscriptfiles...scons:donereadingSConscriptfiles.scons:B

C++11 虚拟拷贝构造函数

我正在阅读MarkJoshi的C++设计模式和衍生产品定价,并在C++11中实现他的代码。一切都进行得很顺利,直到我看到他讨论虚拟拷贝构造函数的第4章。PayOffDoubleDigitalthePayOff(Low,Up);VanillaOptiontheOption(thePayOff,Expiry);这里的问题是VanillaOption包含对thePayOff的引用。如果是这种情况并且有人修改了thePayOff,则theOption的行为可能会被无意中修改。他建议的解决方案是在PayOffDoubleDigital的基类PayOff中创建一个虚拟拷贝构造函数,以便theOpt

C++11 unordered_map使用哈希实现,map是使用红黑树实现的

unordered_mapC++11引入了一套标准库中的哈希函数和哈希容器,用于提供高效的哈希功能。这些特性位于和头文件中。C++11中的哈希容器是基于散列表实现的,可以快速插入、查找和删除元素,并具有平均常数时间复杂度的操作。哈希容器包括std::unordered_map和std::unordered_set,分别对应无序映射(键-值对)和无序集合(唯一值)。使用哈希容器需要注意以下几点:包含头文件:在使用哈希容器之前,需要包含相应的头文件:#include#include哈希函数:为了支持自定义类型的哈希,需要提供

c++ - (右值引用)VS(const 左值引用)作为 C++11 中的函数参数

谁能解释一下当右值引用作为函数参数时优先于const左值引用的情况?背景:我试图将一个const指针传递给一个函数。由于我必须考虑传入局部指针和传入临时指针的情况(比如从函数调用返回),我有两种选择:参数可以声明为:voidfoo(Tconst*const&);//constlvaluereftoconstptr或voidfoo(Tconst*&&);//rvaluereftoconstptr但是这个右值引用不能绑定(bind)到局部变量(它是左值类型。但我确实记得ScottMeyers创造了术语“通用引用”来指代右值引用。这让我更加困惑。)所以我的问题是,由于第一个声明可以处理这两种

c++ - c++11 中首选的初始化方式

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。社区在去年审查了是否重新打开这个问题并让它关闭:原始关闭原因未解决Improvethisquestioninti=0;//(a)OldCstyleshouldIuseit?inti{0};//(b)Bracedirectinitinti{};//(c)Sameas(b)inti={0};//(d)as(b)inti={};//(e)as(c)autoi=0;//(f)auto=intinthiscase.autoi=int{0

c++ - 静态数组 VS。 C++11 中的动态数组

我知道这是一个非常古老的争论,已经在全世界讨论过很多次。但是我目前在决定在特定情况下应该使用哪种方法而不是静态和动态数组之间的另一种方法时遇到麻烦。实际上,我不会使用C++11,我会使用静态数组。但我现在很困惑,因为两者可能有相同的好处。第一种解决方案:templateclassFoo{private:intarray[N];public://Somefunctions}第二种方案:templateclassFoo{private:int*array;public://Somefunctions}我不能碰巧选择,因为两者各有优势:静态数组更快,我们根本不关心内存管理。只要没有分配内存,

C++11 move 构造函数有副作用

在C++中,不能依赖从return语句调用的复制构造函数,因为标准中的一个特殊子句允许编译器忽略对由return语句产生的复制构造函数的调用,即使复制构造函数具有副作用。因此,编写一个除了复制构造实例之外还做其他事情的复制构造函数是一种糟糕的风格。C++11标准中是否有类似的语句允许编译器在某些情况下消除对move构造函数的调用-如果有,那是什么情况? 最佳答案 copy-elision同样适用于moveconstruction,是同一个子句,copyconstruction和moveconstruction的省略统称为“copy-

数据结构—基础知识(11):二叉树的遍历

数据结构—基础知识(11):二叉树的遍历二叉树的遍历二叉树的遍历是指按某条搜索路径访问树中每个结点,使得每个结点均被访问一次,而且仅被访问一次。由于二叉树是一种非线性结构,每个结点都可能有两棵子树,因而需要寻找一种规律,以便使二叉树上的结点能排列在一个线性队列上,进而便于遍历。由二叉树的递归定义可知,遍历一棵二叉树便要决定对根结点N、左子树L和右子树R的访问顺序。按照先遍历左子树再遍历右子树的原则,常见的遍历次序有先序(NLR)、中序(LNR)和后序(LRN)三种遍历算法,其中“序”指的是根结点在何时被访问。先序遍历:ABCDEFGH中序遍历:BDCEAFHG后序遍历:DECBHGFA先序遍历