如果我将混合定义为...
template<class T> class Mixin : public T
{
// mixin methods and members
};
...并用 T 声明它是一个非多态类...
Mixin<NonPoly> mixin;
..然后有一个基类指针指向它...
NonPoly* nonPolyPtr = &mixin;
...我以后如何确保 nonPolyPtr 指向 Mixin 类型?
dynamic_cast<Mixin*>(nonPolyPtr)
上面没有编译,因为基类是非多态的。
我看到 Boost 有一些可能有帮助的特征类,但我希望有一个更简单的解决方案我忽略了。