/* LICENSE BEGIN This file is part of the SixtyFPS Project -- https://sixtyfps.io Copyright (c) 2020 Olivier Goffart Copyright (c) 2020 Simon Hausmann SPDX-License-Identifier: GPL-3.0-only This file is also available under commercial licensing terms. Please contact info@sixtyfps.io for more information. LICENSE END */ #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 using Pin = T; /* template struct VBox { const T *vtable; void *instance; }; template struct VRef { const T *vtable; const void *instance; }; */ struct AllowPin; template struct VOffset { const T *vtable; uintptr_t offset; };