草庐IT

包装类

全部标签

c++ - 使用临时函数包装器完美转发

在帖子here之后,考虑C++14中的以下代码,here和here://Include#include#include#include//Temporaryfunctionqueuedeclarationtemplateclasstemporary_function_queue;//Applyfunctionqueuedeclarationtemplateconstexprtemporary_function_queueapply_function_queue(F&&...f);//Temporaryfunctionqueuedefinitiontemplateclasstempora

python - 使用 python 包装的 c++ SWIG 模拟输入

我是swig和python单元测试的新手。这就是我想要做的。我有一个需要用户输入的C++函数。使用SWIG将C++代码包装到Python代码中。我正在尝试使用pythonsunittest模块来模拟输入。我试过模拟builtins.input并用c++编写我自己的基本函数,它只返回一个字符串并模拟它。当我到达c++代码中的std::cin时,模拟builtins.input仍然挂起。并模拟返回字符串的函数,不返回模拟的return_value。我的猜测是出于某种原因我无法模拟函数的返回值,因为它是真正的c++代码而不是真正的python。这是我正在使用的一些示例代码:c++我可以包含需

c++ - 包装任意类型/非类型模板类的模板类

假设我有一个模板类base和一类wrapper其中包含base的实例化成员.我想定义类wrapper这样它就依赖于模板参数包,它只是“传递”给base的实例化成员.例如,考虑以下代码,它工作正常。#includetemplatestructbase{base(){std::coutstructwrapper{basea;};intmain(){wrapperx;return0;}预先知道base的所有模板参数是int,我用template在wrapper的声明中.这允许有限的灵active,例如我可以为base的模板参数定义一些默认值。,不修改wrapper.但是,如果base取决于类

java - 使用 JNI 构建 C++ Java 包装器

我目前正在为C++类编写JNI包装器,我不确定到目前为止我所做的是否是最正确的方法。据我所知,不可能声明一个Java构造函数native,所以我最后写了类似这样的东西:packagelog;publicclassLogger{privatelonginternalPtr=0;privatenativelongcreateNativeInstance(Stringapplication,Stringmodule,Stringfunction);publicLogger(Stringapplication,Stringmodule,Stringfunction){this.internal

c++ - 您能否将一个异常继承层次结构包装到另一个异常继承层次结构中? --或者,另一种干净的方法来处理这个问题?

假设我在C++中处理两个继承层次结构。一个继承自std::exception(新层次结构),另一个继承自Exception(遗留C++BuilderVCL基异常类)。如果我调用可能抛出任何一种异常的代码,我必须编写如下代码:try{//dostuff....Function1();Function2();}catch(std::exception&ex){std::cout问题是每个调用者都需要所有这些catch子句来尝试获取每一种最后类型的异常,因为C++没有一个真正的强制异常基类,您可以将其用作万能的(例如C#中的System.Exception类)。(catch(...)是一个非

python - 如何包装 C++ 代码以供 IronPython 访问

我有一个简单的示例,我想从Ironpython访问它(我来自'常规/正常'python')所以我很难将我的C++代码导入Ironpython。通常我只是使用SWIG,包装我的代码,导入并继续我的快乐之路但是由于Ironpython是C#而不是基于C,这使得这个过程变得更加困难我如何为ironpython包装这个类(我还为这个例子附上了我的swig文件,但这可能没有用)#include"minimal.h"doubleaverage(std::vectorv){returnstd::accumulate(v.begin(),v.end(),0.0)/v.size();}std::vect

python - 使用 Cython 包装具有 OpenCV 参数的 C++ 函数

我有以下用C++编写的类#include"segmenter_interface.h"#include"video_marker.cpp"#include#include#include#include#includeclassUserDivide:publicSegmenterInterface{public:virtualvoidSegmentVideo(cv::VideoCapture*vc,std::vector*indices);}实现细节并不重要。理想情况下,我想使用Cython将此类公开给python。对象VideoCapture已经可以由python实例化,因为Open

c++ - 为对象创建 "thin"结构包装器的正确方法是什么?

我正在研究thisquestion的答案我在clang和gcc之间得到不同的结果。使用以下代码:#include#includeusingnamespacestd;//forrbegin()andrend()templatestructreversion_wrapper{T&iterable;};templateautobegin(reversion_wrapperw){returnrbegin(w.iterable);}templateautoend(reversion_wrapperw){returnrend(w.iterable);}templatereversion_wrapp

c++ - 通用非侵入式缓存包装器

我正在尝试创建一个向通用类添加功能的类,而不直接与包装类交互。一个很好的例子就是智能指针。具体来说,我想创建一个包装器,它缓存通过包装器调用的一个(或任何?)方法的所有i/o。理想情况下,缓存包装器具有以下属性:不需要以任何方式更改包装类(即通用)不需要以任何方式更改包装类(即通用)它不会显着改变使用该对象的接口(interface)或语法例如,这样使用它会非常好:CacheWrappercrunchy;...//dosomelonganduglycalculation,cachingmethodinput/outputresult=crunchy->calculate(input);

c++ - 如何从 python SWIG 包装器向下转换 c++ 对象?

问题:我使用SWIG在python中包装了一些c++代码。在python方面,我想采用包装的c++指针并将其向下转换为指向子类的指针。我在SWIG.i文件中添加了一个新的c++函数来执行此向下转换,但是当我从python调用它时,我得到了TypeError。详情如下:我有两个C++类,Base和Derived。Derived是Base的子类。我有第三个类Container,它包含一个Derived,并提供一个访问器。访问器将Derived作为constBase&返回,如下所示:classContainer{public:constBase&GetBase()const{returnde