template <class S>
struct C {
S* operator()(void* c) { return (S*)c; }
};
我可以做到:
C<QRadioButton> caster;
void* p = ??;
caster(p)->width();
其中p是指向QRadioButton的指针,但保留为void *。
我想做的是保留一个脚轮对象的 map ,例如
map<std::string, ??> Caster;
Caster["radio"] = C<QRadioButton>;
Caster["checkbox"] = C<QCheckBox>;
这样我就可以做到:
Caster["radio"](p)->width();
知道如何设置吗?
最佳答案
我不太确定,但是您似乎想使用Boost.Any
关于c++ - 如何制作 map ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5715034/