私はメタプログラミングに関する本を読んでいますが、トランポリンに関する離脱があります:
struct generic_t
{
void* obj;
void(*del)(void*);
};
template <typename T> // outer template parameter
generic_t copy_to_generic(const T& value)
{
struct local_cast // local class
{
static void destroy(void* p) // void*-based interface
{
delete static_cast<T*>(p); // static type knowledge
}
};
generic_t p;
p.obj = new T(value); // information loss: copy T* to void*
p.del = &local_cast::destroy;
return p;
}
私はそれがどのように機能するかを完全に理解していますが、それのアプリケーションが何であるかはわかりません! そして、あなたは通常、このテクニックをどこで使用しますか? 誰かそれについて知っていますか?ありがとう :)