通过boost :: function_base调用boost :: function

时间:2010-09-12 17:11:18

标签: c++ boost boost-function

我有一个unordered_map函数,在解析XML文件时应该在对象上调用它们 我发现boost :: function有一个名为boost :: function_base的基类,但是正如我所料,我无法调用它,因为我没有函数的结构。
由于所有这些函数都是setter函数,我可以保证它们返回void并且只有一个未知类型的参数 有没有更好的方法来解决除了我试图避免的if-else-if分支之外的类型?

2 个答案:

答案 0 :(得分:2)

使用boost :: variant是最好的方法。无论如何,你怎么可能调用具有未知参数类型的函数?

答案 1 :(得分:0)

boost::function仅用于编译时多态。你为什么不只使用常规函数指针?即

typedef void (*function_type)(void *);