如何在数学软件中抽象出整数类型

Tho*_*mas 6 c++ design-patterns template-meta-programming

我正在设计一个数学软件,其算法适用于通用整数类型,如机器整数或GMP整数.对于性能,通常需要使用机器int,但如果有溢出,那么可能想要尝试切换到GMP; 理想情况下在运行时.到目前为止,整个程序都是作为整数类型的模板编写的.随着图书馆的发展,痛苦也在增长:

  • 编译时间和内存消耗已经失控.
  • 编译时的错误消息不太有用.
  • 调试更痛苦.
  • 整个代码都在头文件中.

我可以想到以下解决方案.重构代码以依赖于通过编译时宏定义的固定类型.然后制作库的多个副本,每个整数类型一个,并在可执行文件中将它们链接在一起.缺点似乎是我需要一个库的接口本身.

简短的问题是:在几乎整个程序依赖于某种类型的情况下,什么是设计模式?

dan*_*van 4

GNU 多精度算术库已

精心设计,无论是对于小操作数还是对于大操作数,都尽可能快。

也就是说,如果你使用GMP库那么就可以为你解决这些困难,省去你很多力气!