草庐IT

内包装

全部标签

c++ - `__m256` 的包装器使用构造函数产生段错误 - Windows 64 + MinGW + AVX 问题

我有一个看起来像这样的unionunionbareVec8f{__m256m256;//avx8xfloatvectorfloatfloats[8];intints[8];inlinebareVec8f(){}inlinebareVec8f(__m256vec){this->m256=vec;}inlinebareVec8f&operator=(__m256m256){this->m256=m256;return*this;}inlineoperator__m256&(){returnm256;}}__m256需要在32字节边界上对齐才能与SSE函数一起使用,并且应该自动对齐,即使在u

c++ - 有哪些简单的方法可以用 COM 接口(interface)包装基于 C++ 的对象模型

我有一个预先存在的c++对象模型,它表示应用程序的业务层层。我希望能够将对象模型暴露给用其他语言编写的应用程序,即vbscript、VB、javascript等。我相信这样做的最好方法是用COM层包装业务对象。有什么快速有效的方法可以做到这一点。任何建议,实用的“如何”文档的链接将不胜感激。因为我正在为此开始赏金,这里有一些针对潜在赏金猎人的额外指南:-1)我决定采用ATL方法2)我现在正在专门寻找有关包装预先存在的c++对象模型的非常好的“如何和快速”文档的链接,以使其可用于诸如javascript之类的脚本语言3)一些带有小的工作示例的东西向我展示了哪些代码需要添加到哪些文件中,例

c++ - 我怎样才能得到一个返回自身的 boost::function (或其他通用函数包装器)?

我最近迷上了Erlang的基于角色的并发模型的简单性,并且正在研究用C++实现它的某些部分的想法。沿着这些思路,我也喜欢将有限状态机实现为一组表示状态的函数的想法,其中通过从一个函数到下一个函数的尾调用进行转换。我想在C++中尝试类似的东西。但是一个天真的实现很可能会遇到这样一个事实,即在我的编译器(带有-O0的GCC4.1)中进行尾调用最终会导致堆栈溢出。所以相反,我想做的是让每个状态/函数返回一个仿函数(下一个要进入的状态),并有一个底层循环,它只是顺序调用一个仿函数,然后调用返回的仿函数,然后调用仿函数因此返回,等等。类似的东西:typedef...context_t;//Ast

c++ - 图形 API 的包装器

我非常喜欢拥有一个具有适应能力的游戏引擎,不仅在它能做什么,而且在它如何处理新代码方面。最近,对于我的graphics子系统,我编写了一个class来重写,它的工作方式如下:classLowLevelGraphicsInterface{virtualboolsetRenderTarget(constRenderTarget*renderTarget)=0;virtualboolsetStreamSource(constVertexBuffer*vertexBuffer)=0;virtualboolsetShader(constShader*shader)=0;virtualbooldr

C++ 语义类型包装

我有一个数据类型,例如classVector3。现在我需要创建几个类,它们具有与Vector3相同的接口(interface),但具有更高级别的语义(例如:Position、Velocity)。使用typedef是不够的,因为我需要这些类型是不同的,以便它们可以用于重载。在C++0x中,我可能会使用构造函数继承:structPosition:publicVector3{usingVector3::Vector3;};这会不会有什么问题?有没有更好的方法呢?是否可以在不使用C++0x功能且不必显式编写所有Vector3构造函数的情况下做到这一点? 最佳答案

C++ 类来包装 loadlibrary?

我在想如果有几个类来包装LoadLibrary和GetProcAddress、Library和Function分别。当我在考虑这个时,我不确定它是否可能。这是我的想法:库类:classLibrary{HANDLEm_handle;public://HandlesinitializingtheDLL:Library(std::stringname);//DeinitializestheDLL~Library();HANDLEgetHandle();boolisInitialized();}和Function类:classFunction{public:Function(Library&l

c++ - 通过 SSE4 包装器比较字符串

我需要在支持SSE4的机器上快速比较两个字符串。不写汇编插入怎么办?像longlongbitmask=strcmp(char*a,char*b)这样的包装器将是完美的。 最佳答案 您应该使用英特尔SSE内部函数,而不是使用内联汇编。对于字符串比较,您需要SSE4.2内在函数:文档在这里:http://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/cpp-mac/GUID-6E9CFDF2-5DF6-42A4-

.net - 遗留 C++ 库的托管 C++ 包装器

我们正在考虑使用托管C++为一些遗留C++库编写.Net可调用包装器。这一切看起来都很简单。有什么需要注意的吗? 最佳答案 我发现在C++/CLI中包装一些现有的C++库通常很容易,并且遇到的陷阱相对较少。我记得的是:在同一个可执行文件/DLL中混合非托管C++代码和C++/CLI代码是一个非常糟糕的主意。我在关闭时遇到了竞争内存管理器的问题(基本上是.NET运行时和常规C++运行时,在关闭时清理内存时相互踩踏,导致不确定的行为哪一个释放了什么)。我没有将静态遗留C++库链接到C++/CLI库,而是创建了一个包含遗留C++的DLL,

c++ - 如何为二维数组的包装类重载数组索引运算符?

这个问题在这里已经有了答案:Operator[][]overload(17个答案)关闭2年前。#defineROW3#defineCOL4classMatrix{private:intmat[ROW][COL];//.....//.....};intmain(){Matrixm;inta=m[0][1];//readingm[0][2]=m[1][1];//writing}我直接认为不可能重载[][]。我想我必须间接地做,但如何实现呢?

c++ - 使用自定义 std::ostream 包装 FILE*

我有一个与std::ostream一起工作的函数。我需要支持使用C文件句柄(FILE*)。我应该创建我自己的std::ostream的子类来委托(delegate)给FILE*吗? 最佳答案 正如BenVoigt所指出的,您想要子类化streambuf。南加州大学网站上的某些页面有documentation,header,和source对于包装FILE*的streambuf子类(stdiobuf)的GNU实现。它对作为(GroovX)一部分的库有一些依赖性,但这些应该很容易删除(我将从删除对GVX_TRACE的所有引用开始)。有趣的