#pragma once template struct VRefMut { const T *vtable; void *instance; }; // For the C++'s purpose, they are all the same template using VRef = VRefMut; template using VBox = VRefMut; /* template struct VBox { const T *vtable; void *instance; }; template struct VRef { const T *vtable; const void *instance; }; */