考虑这些重载函数,C++模板:选择使用隐式转换为模板实例化类型的重载函数!
void fun(Int2Type<1>) {}
void fun(Int2Type<2>) {}
void fun(Int2Type<3>) {}
void fun(Int2Type<4>) {}
我想用这种方式来调用这些,
fun(1); // this should call first function
fun(4); // this should call fourth function
有没有办法做到这一点?如果是的话,那么我们可以做同样的一些运行值,这么一说, (请注意,在上面的调用,参数在编译时是已知的)
fun(value); // value can be decided at runtime!
或任何如果这是不可能的呢?目标是,根据不同的积分值调用不同的函数!
编辑
顺便说一句,我不能使用任何的以下内容:
- 使用使用
switch(value)
- 一些
SomeFuncTable funTable[] = {fun(Int2Type<1>(), fun(Int2Type<2>()}
等
我真诚地怀疑这是可能的,但如果确实存在,我们很乐意知道答案。 – acron 2010-12-14 12:30:14
为什么不是? – Puppy 2010-12-14 12:33:48
你没有提到Int2Type来自Loki。 – 2010-12-15 09:40:37