买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:山西大学
摘要:本发明属于软件技术领域,具体涉及一种可使用任意类型参数的函数模板或类模板二进制库的实现方法。为解决现有技术生成的二进制库不支持新定义类数据的问题,本发明重新设计Variant类:具有表达任意类型数据的能力,也支持二进制库生成后新定义类的数据,它支持各种运算;对于函数模板或类模板的源代码,只需将其实例化为Variant类型,源代码无需作任何修改,就可以生成二进制库,该二进制库支持任意类型的数据,并且该库无需修改也支持以后的新定义类;在该库使用时,先将普通数据转化为Variant对象,再将该对象传给二进制库即可,运行的结果等于直接使用普通数据,普通数据和Variant对象间的转化仅需一条赋值语句。
主权项:1.一种可使用任意类型参数的函数模板或类模板二进制库的实现方法,其特征在于,包括设计Variant类,具体为:(1)Variant类对用户是透明的,即库的作者和库的用户无需知道该Variant类的细节;对于库的作者,只需将函数模板或类模板的模板参数实例化为Variant类型即可;对于库的用户,在使用该二进制库时,只需传递给Variant类型的参数即可;(2)将函数模板或类模板实例化为Variant类型,即可生成可接受任意类型参数的二进制库,而源代码无需作任何更改;(3)Variant类型的数据支持全面的数学运算;(4)Variant类型的数据全面支持STL;(5)Variant类是通用的,即不加修改地适用于任何函数模板或类模板;(6)Variant类支持用户的新定义类,在可使用任意类型参数的函数模板或类模板二进制库生成以后,无需修改该二进制库,该二进制库仍然支持用户的新定义类,但该新定义类中必须定义type类型;(7)在Variant类的内部,增设一个structclass_data,用于存储新定义类的相关数据,包括新定义类对象的地址,以及相关数学和逻辑运算函数的地址,在名为Type的enum内增设一个Class的类型,用以表示类Variant存储的数据类型是新定义类,增设一个新的构造函数和新的operator=运算符,用以将新定义类对象构造为Variant对象;所述方法还包括:设计待导出的函数模板或类模板;拷贝Variant类的源代码到当前工程;将设计好的待导出函数模板或类模板的模板参数实例化为Variant类型,且该待导出的函数模板或类模板的源代码无需作任何修改;将实例化为Variant类型的函数模板或类模板导出为二进制库;如果欲使所述二进制库处理基本类型的数据,则只需用一条赋值语句将基本类型数据转换为Variant对象,再将该Variant对象作参数传递给二进制库即可;如果欲使所述二进制库处理自定义类类型的数据,则需要如下三个步骤:(1)用一条赋值语句将自定义类对象转换为Variant对象;(2)将自定义类对象的运算符向该二进制库进行登记;(3)将该Variant对象作参数传递给二进制库。
全文数据:
权利要求:
百度查询: 山西大学 可使用任意类型参数的函数模板或类模板二进制库的实现方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。