c++ - 大量使用移动平台模板

标签 c++ templates mobile

我一直在浏览 Andrei Alexandrescu 的《现代 C++ 设计》一书,这本书看起来很有趣。然而,它非常广泛地使用模板,我想知道如果出于大小考虑使用 C++ 进行移动平台开发(Brew MP、WebOS、iOS 等)是否应该避免这种情况。

在 Symbian OS C++ 中,模板的标准使用是不鼓励的,Symbian OS 本身使用它们,但使用称为瘦模板的习惯用法,其中底层实现是使用 void* 指针以 C 风格完成的,顶部有一个瘦模板这是为了实现类型安全。 他们使用这种习惯用法而不是常规使用模板的原因是专门为了避免代码膨胀。

那么在为移动平台开发应用程序时,关于使用模板的观点(或事实)是什么。

最佳答案

继续使用模板,只要它们能让您的代码更易于理解和维护。避免在移动平台上使用模板可归类为“过早优化”。

如果您遇到可执行文件大小的问题,则在必要时重新设计,但在您看到任何实际问题之前,不要假设模板会导致问题。

“现代 C++ 设计”和类似书籍中的很多内容不会导致代码臃肿,因为其中很多内容实际上是为了确保类型安全和执行编译时元编程魔法而设计的,而不是生成代码代码。

模板可以用来做很多不同的事情。它们可以生成比您预期更多的代码,但这不是禁止使用它们的理由。就在不久前,出于对代码大小和性能的担忧,各种权威建议避免异常、虚函数、 float 学甚至类,但人们做了这些事情,并且不知何故一切都很好。

关于c++ - 大量使用移动平台模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4522111/

相关文章:

image - 是什么导致Flutter平台之间的图像宽度/覆盖率差异?

css - 移动网站上的重叠文本

c++ - 需要数学编辑器来编写数学公式

php - 我需要一个可以与 PHP(服务器端)和 Javascript(客户端)一起使用的模板系统(基于 XML)

java - 应用程序运行时使用 Java 的动态脚本编辑器(GUI 可以是 JSP 之类的 Web 或 Swing 之类的 C/S 等)?

c++ - 具有模板参数的模板类上的赋值运算符重载

c++ - 一条线相对于另一条线的角度

c++ - 为什么按引用传递参数在 C++ 中的工作方式是这样的?

c++ - 有什么有用的建议可以找出在 Win32 进程中释放内存的位置吗?

c# - 有没有从 Java netbeans 项目调用 .net 类的好方法?