CppSharp v0.8.14 Release Notes

    • โž• Added experimental support for templates.

    • ๐Ÿ›  Fixed the generated C# when a virtual function takes a fixed array.

    • ๐Ÿ›  Fixed the generated C# for fixed arrays in types of parameters.

    • ๐Ÿ›  Fixed the generated C# for virtuals taking arrays of objects.

    • ๐Ÿ Lookup Mono SDK path on Windows registry.

    • ๐Ÿ›  Fixed the generated C# when a virtual function takes an array.

    • ๐Ÿ›  Fixed the generated C# with 4+ modules and repetitive delegates.

    • โž• Added C# marshalling of parameters of type array of const char* const.

    • โž• Added C# marshalling of parameters of type array of const char*.

    • ๐Ÿ›  Fixed null arrays in C# to be passed as such to C/C++.

    • โž• Added C# marshalling of parameters of type array of objects.

    • โž• Added C# marshalling of parameters of type array of primitives.

    • โž• Added marshalling of parameters of type array of pointers.

    • ๐Ÿ›  Fixed the generated C# for two anonymous types nested in another anonymous type.

    • โœ‚ Removed unused internals from the generated C#.

    • โž• Added an example for the parser API-s.

    • โž• Add C++17 to the parser options

    • Compile.sh script now has improved error handling.

    • ๐Ÿง Linux toolchain can be supplied in the same spirit in path probing on Mac.

    • Enabled empty arrays of non-primitives only when not using MSVC.

    • Ignore zero-sized constant C array types.

    • 0๏ธโƒฃ The compilation platform is now nullable by default and validated by the host platforms.

    • โž• Added LLVM target initialization and supporting libraries for parsing inline assembly.

    • ๐Ÿ›  Fixed a crash when trying to use a VS version missing from the system.

    • ๐Ÿ›  Fixed the binding of multiple identical function pointers with a calling convention.

    • Got rid of anonymous names for delegates.

    • ๐Ÿ›  Fixed the calling conventions of delegates.

    • Ensures that if a delegate is used for a virtual as well as something else, it finally ends up as public.

    • ๐Ÿ›  Fixed the code generation when the return type of a method is a function pointer that has been used somewhere else as well.

    • โž• Added Access and Calling convention to the delegate definition.

    • Generated properties from setters returning Booleans.

    • โž• Added some aliases to options in the CLI tool.

    • [generator] Improved processing for C++ inline namespaces.

    • ๐Ÿ›  Fixed initial output messages in the CLI.

    • Generated properties from get()/void get() pairs.

    • โช Restored the option for generating one C# file per unit.

    • ๐Ÿ›  Fixed the sorting of modules to also work with manually added dependencies.

    • Do not generated unformatted code if debug mode is enabled.

    • โž• Added an option to the CLI for enabling debug mode for generated output.

    • ๐Ÿ‘Œ Improved the directory setup in the CLI in case the path is not a file path.

    • โž• Adds a new option to the CLI for automatic compilation of generated code.

    • โž• Adds a new dedicated "-exceptions" flag to enable C++ exceptions in the CLI.

    • โž• Added a new -A option to the CLI to pass compiler arguments to Clang parser.

    • ๐Ÿ›  Fixed the name of an option in the CLI.

    • โœ‚ Removed the showing of help for the CLI if we have output an error previously.

    • ๐Ÿ‘Œ Improved error messages in the CLI.

    • ๐Ÿ‘Œ Improve platform detection in the CLI so the current platform is set by default.

    • ๐Ÿ›  Fixed a directory check in the CLI that was throwing exceptions in Mono.

    • ๐Ÿ›  Fixed the generated C# indexers for specialisations of pointers.

    • ๐Ÿ›  Fixed the generated C# for increment and decrement operators.

    • โœ‚ Removed leftovers in the comments from unsupported custom xml tags.

    • ๐Ÿ›  Fixed the generation of symbols to check all base classes up the chain.

    • ๐Ÿ–จ Printed the text from unsupported comment tags.

    • ๐Ÿ›  Fixed the generated C# for a case of a typedef of a function pointer.

      Typedefs of function pointers can be written in two ways:

      typedef void (*typedefedFuncPtr)();

      int f(typedefedFuncPtr fptr);

      typedef void (typedefedFuncPtr)();

      int f(typedefedFuncPtr* fptr);

      Up until now we only supported the former.

    • ๐Ÿ›  Fixed the C# generation for functions with typedefed function pointers as params

    • Set the name-space of a parameter to its function.

    • Included the comments plain text to the remarks block.

    • ๐Ÿ›  Fix the typo in LLVM.lua

    • Prevented projects from being generated using GenerateProjects.bat

    • ๐Ÿ›  Fixed the generated C# for setters with a reference to a primitive type.

    • ๐Ÿ“š Ensured a single element for remarks in the generated XML documentation comments.

    • ๐Ÿ›  Fixed the renaming of methods in forwarded types from secondary bases in dependencies.

    • โž• Added to a method a list of its overridden methods.

    • Generated internals of external specialisations only if the template has template fields.

    • Equalised the access of overrides and their base methods.

    • ๐Ÿ›  Fixed the code generation for indexers returning a void pointer.

    • ๐Ÿ›  Fixed the generated C# when a protected constructor has a parameter with a protected type.

    • ๐Ÿ›  Fixed the generated C# when an external specialisation with a dependent field is used as a field.

    • Made Function a DeclarationContext to match the Clang AST.

    • Made the C/C++ language switches adjustable in managed code.

    • โž• Added an option to enable or disable RTTI.

    • ๐Ÿ›  Fixed the generation of inlines to handle types in classes in name-spaces.