CppSharp v1.0.1 Release NotesRelease Date: 2021-12-30 // over 1 year ago
Generate valid C# for independent specialisations with nested fields
Don't revisit parameters when checking to ignore
Generate valid C# for templates with external specializations only
⬇️ Drop CI with windows 32-bit because of premake
Generate valid C# for nested in external specializations
Generate valid C# for independent external specializations
Generate valid C# for nested external specializations
Generate valid C# for unresolvable base templates
Generate valid C# for classes with dependent fields nested in templates with independent fields
Generate valid C++ for redeclaration of friends
Generate valid C++ for specialisations with void
Generate valid C# for pure functions returning or taking dependent pointers
🛠 Fix a crash when processing templates with variable arguments (#1641)
Report errors when linking of generated C++ fails
Ensure complete classes in class templates
🖨 Print C++ for some kinds of non-type template parameters
👍 Always ignore functions returning unsupported specializations
Generate valid C# for unions in templates with non-type args
🛠 Fix a test for the new msvc in vs 2022
Match names of parameters in templates to their specializations
↪ Work around adding an STD name-space to a custom header
Generate valid C# for fields with types system template specializations
Generate valid C# for variables which use float
Generate valid C# for variables with > 1 arg
Generate valid C++ for variadic functions
🛠 Fix C# layouts for classes with nameless unions
Generate valid C# for copy ctors with extra args
Generate valid C# for destructors of templates with dependent fields
🚚 Don't generate or move ignored specializations
📇 Rename templates only used through aliases
Generate valid C# for internal fields of type external specialization
Generate valid C# for static object-typed fields
Trim specializations only used in ignored types
Instantiate specialized classes nested in templates
Generate valid C++ for protected inline functions
Generate valid C++ for parameters by value
Generate valid C++ for conversion operators in name-spaced classes
Previous changes from v1.0.0
➕ Add built-in compilation of extra symbols
🛠 Fix naming for function pointers with strings
🌐 Ignore external (no module) translation units
🛠 Fix instantiation of specializations not to crash
0️⃣ Generate valid C# for default args: typedefed refs to enums assigned empty ctors
Extend finding of functions to also get overloads
0️⃣ Ensure valid C# for default args assigned secondary bases
Generate valid C++ for protected ctors of pure classes
Generate valid C# for constants in namespaceless modules
Generate valid C# for types nested in external typedef-ed specializations
Generate valid C# with explicit external specializations
🛠 Fix templated indexers returning objects
0️⃣ Generate valid C# for specializations in default args
Generate valid C++ for pure implemented dtors
🆓 Free returned by value instances, not object ones
Generate valid C# for forwarded specializations
0️⃣ Bind default constructors with dependent pointers
Generate valid C# for setters returning Booleans
Place returns as needed without an extra block
0️⃣ Generate valid C# for default params in specialisations
Resolve overloads with typedef-ed mapped params
Generate C++ deconflicted with system functions (#1626)
🖨 Don't print tags for nameless and typedef classes
🛠 Fix C4099 (class as struct) in generated C++/CLI
Bind the tag kind (struct, class, enum) of a type
📜 Regenerate the parser bindings
✂ Delete the C++ copy when returning by value (#1623)
✂ Delete the longer needed patching of msvc headers
Don't evaluate dependent variables
✂ Delete the longer needed patching of msvc headers
⚡️ Update LLVM to the latest version
🛠 Fix for "vector subscript out of range" exception (#1621)
🛠 Fix incorrect dtor call for non-owned instances (#1615)
🛠 Fix regressed marshalling of lists in C++/CLI
🛠 Fix for Visual Studio 2019 16.10 (#1614)
Generate valid C# for public fields of typedef-ed primitive pointer
Resolve names matching those of system functions
➕ Add a mechanism to selectively initialize allocated unmanaged memory in the default constructor.
👍 Much improved support for marshaling const char* to string
✨ Enhanced ExpressionEvaluator to return implicitly typed uint, long, and ulong values from EvaluateNumber when there is no literal type suffix applied to a numeric expression string.
👷 Attempt to resolve a GitHub CI Actions isue: CI is currently failing because restore can't find NUnit and friends. The error message and google search indicate that GitHub Actions is only looking in the "Microsoft Visual Studio Offline Packages" cache. Add a nuget.config file to in an attempt to tell GitHub Actions to query nuget.org in addition to the offline cache.
bug fix: When generating the get accessor for a field composed of an embedded array of structs use __GetOrCreateInstance to initialize the managed array wrapper rather than __CreateInstance so that __Instance holds a pointer to the memory allocated for the array in the outer struct rather than an independent copy of that memory.
Repaired broken alignment padding generation for structs with embedded arrays of structs
Generate comments for field
🛠 Fix the regressed generation of C++ for variables
➕ Add work-in-progress TypeScript interface bindings generator.
➕ Add MarkEventsWithUniqueIdPass pass for global event handling.
Maintain DeclarationsList integrity by clearing item offsets.
➕ Add CppSharp VS Code workspace.
Implement two-step initialization for QuickJS.
➕ Add QuickJS runtime project and initial features.
👌 Improve support for default arguments in NAPI generator.
➕ Add support for generation of default argument expressions in C generator.
➕ Add experimental GenerateExternalDataFields option and supporting code.
➕ Add C code generator GenerateClassEvents for common event handling.
🖨 Introduce a scope kind stack for type printers.
Rework C enum generation for more accurate handling.
➕ Add convenience constructor to ArrayType.
Create target directory when generating files.
➕ Add new pass to convert C++ FastDelegate types into CppSharp delegates.