本文介绍一个使用Java Optional实现策略模式的链式调用,以加减法运算为例,假设一个运算操作需要由一个加法策略和一个减法策略来共同完成,加法策略和减法策略都可以调用任意次。我们希望链式调用可以从中间退出,类似Kotlin中的’?.’。
本文介绍了一种库开发技术,并用例子分析这种技术的可行性。使用这种技术开发的库,除了满足ABI,良好的可拓展性,同时,还具有可以相互依赖的特点。当我们需要开发两个插件,一个插件依赖另一个插件的so,反过来同样也适用,这种技术(设计方式)是验证可行的。
本文列举一些自己容易忽略或者本身比较重要的《Effective C++ V3 ed》 skill or experiences。
基于对象的程序设计有别于面向对象程序设计,面向对象的三要素是封装、继承、多态,而基于对象仅仅使用了封装这个要素。在基于对象程序设计中,继承和多态通过boost::function、boost::bind来实现。C++11之后,std::tr1::function、std::tr1::bind
实现了这带个接口的标准化,但是与boost有一些区别。写本文的目的,1. 这是一种让人眼前一亮的程序设计方式,之前有了解function和bind,但没想到能用到这个程度,影响整个项目的框架设计;2. 更全面的了解该技术,以及其在muduo中的应用;3. 在C++程序设计中是非常具有实战参考价值。
本文简要介绍了C/C++ ABI(Application Binary Interface)兼容性,及其在插件方面的实现指引和方法。在当今热火的AIoT(人工智能物联网)领域,智能模块的C/C++插件化,是开发方式的主流。AIoT的算法场景众多,需求不断增长,每个场景的客户需求又各不相同,且随着认知的加深在不断变化。限于AIoT边缘计算设备的特殊性,比如使用流量卡与云端互联,升级条件复杂,成本较高,随着版本的迭代和客户的增加,升级任务也日趋碎片化。不管是客户的需求更新,还是算法的优化,都要求智能模块可以进行简易快速的升级。
本文对TensorRT sampleONNXMNIST进行了介绍和实践,与官方无异,但其中有一些实践经验值得参考。