C ++类模板可以将方法名称作为模板参数吗?

时间:2012-10-03 03:46:49

标签: c++ templates class-template

就像标题所示,C ++类模板可以将方法名称作为模板参数吗?

例如,

template <T>
class Foo
{
public:
    void T(int bar);
};

1 个答案:

答案 0 :(得分:2)

不幸的是,C ++核心语言没有处理名称的任何方法。

一些可能性:

  • 通过预处理器处理名称,即丑陋的宏 注意:Boost参数库使用一些非常相关的未记录的 Boost宏技巧。我用过一次general options class的东西。对不起,我记不起来了,但基本上它支持C ++ 03的一种可变参数宏。
  • 进行自己的自定义预处理,即基于脚本。
  • 以某种方式将负担放在客户端代码程序员身上。

对于那些想知道,有什么需要它的人?,一个典型的例子是如何在C ++中使用Python的库“named tuple”类,其中程序员提供了元组成员的名称。