-
C# structs do not support inheritance and by extension do not support `protected`. Right now we emit `protected` as `private`, but usually the generator ends up changing `protected` to `public` anyway…
-
In C++, deletion (as in the `delete` operator) and destruction (as in `~MyStruct`) are separate concepts and are handled differently depending on the context.
In our current scheme, deletion is onl…
-
Things like the RTTI pointer are stored in the vTable before the entry where the vTable pointer points. Right now we just assume the vTable pointer points to the first occurrence of a function pointer…
-
It is useful to be able to use diffs to see how changes in Biohazrd affect the output of a given library's generation. However right now `InlineExportHelper` output tends to cause a lot of annoying-to…
-
Mach-O is the format macOS uses for executables and dynamic libraries.
It seems Apple no longer hosts documentation on its format (Wikipedia links to [this archive](https://web.archive.org/web/2009…
-
`char32_t` represents UTF-32 codepoints. They aren't supported yet purely out of lack of need and unclear best translation.
How these might translate to C# is somewhat unclear. Older methods such a…
-
Biohazrd requires building a small native component to access inline functions which aren't exported. There's not really any way around this because during typical C++ library consumption these inline…
-
Internally, Clang combines common declarations for template specializations when their canonical types match. For example:
```cpp
template class MyTemplate
{
public:
T Field;
};
typedef…
-
Right now there's no easy way to emit implementation detail-type types inside `CShapLibraryGenerator`. For constant arrays, we need some helper types for allowing them to be enumerated. Right now we j…
-
Separate from const overloads, C++ also allows methods which differ only by the constness of parameters for some reason:
```cpp
class MyClass
{
public:
void MyFunction(void*);
void MyF…