代码之家  ›  专栏  ›  技术社区  ›  WolfgangP

你遇到过的模板有什么最出色的用途?

  •  3
  • WolfgangP  · 技术社区  · 16 年前

    我们都知道通常使用模板来设计容器,而且我们都知道您可以使用模板来做一些使您头晕目眩的事情。

    当我第一次遇到静态多态性时,我真的很惊讶于你能用模板做什么。很明显,模板比设计容器更有用。我买了安德烈的“现代C+设计”,但遗憾的是还没有找到时间或精力去阅读它,但我相信它提供了大量出色的模板使用。

    IMHO this 也是一个非常巧妙的模板使用。

    你遇到过的最巧妙的模板使用方法是什么?

    6 回复  |  直到 16 年前
        1
  •  5
  •   shoosh    16 年前

    boost's Spirit 用于创建语法分析器的元编程。

        2
  •  8
  •   tpdi    16 年前
        3
  •  4
  •   Naveen    16 年前

    Compile time assert 使用模板专门化。我认为这是如此简单,但如此美丽的模板使用。

        4
  •  2
  •   dirkgently    16 年前

    Alexandrescu的模板工作很吸引人。这个 Loki 图书馆充分展示了他能用模板编织的魔力。

        5
  •  1
  •   Peter Wone    16 年前

    我更喜欢微软的“智能指针”,它精心使用模板,使COM不那么像猪,代码更可读。

        6
  •  1
  •   ElCabri    16 年前

    我不记得lib的名称,但我的想法是使用由整数参数化的模板化类型,以便在执行物理量之间的计算时,在执行一致性时加强一致性。这个概念非常简单,采用一个简单地嵌入双精度浮点的模板类型。用三个整数参数化,一个表示质量,一个表示距离,一个表示时间。例如,速度是距离参数=1,时间参数为-1。加速度是距离参数=1,时间参数=2。然后重载所有的运算符,这样您就只能用相同的参数添加/减去类型,并且在执行一个产品时对参数求和。因此,如果速度类型为<1,-1,0>,时间类型为<0,1,0>,则速度x时间类型为<1+0,1+-1,0+0>,因此速度*时间->距离。

    它不仅很聪明,而且是少数几个使用参数而不是typename的模板的例子之一。