草庐IT

Instantiation

全部标签

c++ - 一大堆显式的函数模板实例化怎么才能简明扼要呢?

我正在编写一个C++库,其中包含许多我想显式实例化和导出多个类型参数的函数模板。在我的特殊情况下,我有很多数字函数模板,我想为float单独实例化和编译它们。,double,和longdouble.它们看起来像这样:templateTcalculate_a(Tx){...}templateTcalculate_b(Tx,Ty){...}//...如果我有M个函数模板和N个底层类型,那么我有M*N个显式实例要输入。是否可以更简洁地编写这些实例化?我目前的解决方案是使用预处理器宏来执行给定类型的所有实例化:#defineEXPLICITLY_INSTANTIATE(T)\templateT

c++ - 在 Python 中创建 C++ 类的实例并在其上调用方法

我正在尝试在我的Python应用程序中使用C++库。我可以在python中加载dll,但找不到任何关于如何创建该c++dll中的类的实例并调用该onject上的方法的解决方案。以下是我所做的和想要的My.dll中的C++代码classMyClass{public:MyMethod(intparam);}Python代码fromctypesimport*myDll=windll.LoadLibrary("My.dll")我要执行以下操作myClassInstance=myDll.InstantiateMyClass()myClassInstance.MyMethod(5)

C++ - 将对象添加到 std::vector,在循环中实例化

我是专家级别的Java程序员,正在尝试将我的知识移植到C++。这不是家庭作业,只是我试图学习C++等价物的概念。我想做的是使用循环“生成”自定义类型的对象列表。这就是我在Java中的做法:publicclassTestClass{privateArrayList_exampleObjects;privateint_numObjects=10;publicvoidpopulateList(){_exampleObjects=newArrayList();for(inti=0;isuper简单的东西。创建一个列表,遍历任意循环并向其中添加对象。然后,循环遍历这些对象并将它们用于任何目的。测

c# - C++ 和 C# 中的静态变量有什么区别?

静态变量在C#中的功能是否与在C++中的功能相同或相似?编辑:使用C++,您可以在许多不同的上下文中使用静态变量-例如:1)全局变量,2)局部函数变量,3)类成员-C#中的类似用法是否与C++中的类似用法相似? 最佳答案 静态在C++中有多种含义。C#中的静态变量基本上只有一个含义:作用域为类型的变量。在C#中,类型上的static用于表示类型范围的变量。方法上的静态是一种类型范围的方法。Static也可以用在类上,表示整个类仅由静态方法、属性和字段组成。函数作用域内的静态变量或非类作用域的静态值没有等价物。编辑:作为对您编辑的回应

c++ - 'instantiation' 对模板的意义

Notethatcodeisinstantiatedonlyformemberfunctionsthatarecalled.Forclasstemplates,memberfunctionsareinstantiatedonlywhentheyareused.上面的引文来自这本书:AddisonWesley的C++Templates。我想了解行话“代码被实例化”的含义。这是否意味着只保留特定的内存,或者只编译该代码或其他什么? 最佳答案 这是一个非常有趣的问题,应该在编译器如何处理模板的更广泛的上下文中完成。基本上模板是编译器从中生

C++ : Calling a child method from parent instantiation

在我的代码中,我实现了这些类:classA{public:virtualintfun(){return0;}}classB:publicA{public:virtualintfun(){return1;}}还有这些函数:voidoperation(Aa){printf("%d\n",a.fun());}intmain(){Bb;operation(b);return0;}可以看到,B类继承了A类,并实现了虚继承方法fun()。主类调用一个以A为参数的函数,并调用fun()方法,参数为B对象。在执行时,我希望打印字符串"1",但它是"0"(即使它是传递给的B对象操作()).我需要这样做,

c++ - 使用 `extern template` 防止模板类的隐式实例化

考虑以下代码片段:templatestructX{};externtemplatestructX;intmain(){X{};}它编译并链接:liveexampleongodbolt.org.由于externtemplate声明,我希望它不会链接。我的理解是externtemplate的意思是:“请不要在这个TU中实例化这个特定的模板特化,它将由其他一些TU提供,你可以链接到它”.示例/描述。我在isocpp上看到过,cppreference似乎验证了我的心智模型。例如Fromhttps://en.cppreference.com/w/cpp/language/class_templa

c++ - 我可以在列表后面的初始化列表中使用初始化的 C++ 类成员吗?

我正在重写一些代码以消除全局变量并使类构造函数/析构函数处理一些第三方库资源的清理,但我担心一些代码会从类初始化列表中的另一个成员初始化一个成员。classMyPodofoDocument{public://generatespdftostreamMyPodofoDocument(std::stringstream*pStringStream):device(pStringStream),document(&device){}private:PoDoFo::PdfOutputDevicedevice;PoDoFo::PdfStreamedDocumentdocument;PoDoFo:

php - 在哪里建立新的领域实体? Controller 、存储库或映射器?

假设对于每个域实体,我都有一个为数据映射器提供API的存储库。例如,如果我有一个UserEntity,那么我会有一个UserRepository,它与UserMapper对话以将用户数据保存在数据库中。现在,假设在网页上提交了一个表单,我的Controller知道它需要根据提交的信息创建一个新的UserEntity。是否:当场做newUserEntity(),根据提交的表单数据运行所有必要的setter方法,然后将UserEntity传递给repo,repo传递给mapper进行插入?Controller创建UserEntity=>Repo=>Mapper=>DB将表单数据转换为数组,

PHP: fatal error :无法实例化抽象类

我有一个名为的抽象数据库类:abstractclassdatabase{protected$value;}我创建了另一个抽象类abstractclassmy_databaseextendsdatabase{publicfunctionset_value($value){$this->value=$value;}}当我尝试使用它时:$my_db=newmy_database();我得到错误:Fatalerror:Cannotinstantiateabstractclassmy_databasein...我尝试做的是:抽象类数据库有一个protected$value,我想创建一个包装类,以