The warning is essentially a bug in msvc because it's harmless and requires exporting all accessible template specializations. See also http://www.unknownroad.com/rtfm/VisualStudio/warningC4251.html.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
Improve generation of forward references and includes in C++/CLI.
Move the GenerateInclude logic to GetTypeReference so that an include is also generated for visited types of an ASTRecord that are forward declared, and come from typedef of ignored class template.
Co-authored-by: Build Agent <admin@sage.com>
This reverts commit 0fa18a9f62.
Unfortunately MS's C++/CLI compiler seem to have a bug handling operator overloads with global qualified types. Rever this for now until we figure out a workaround.
We generate free functions inside a global namespace-level class with the same name as the header. This means that there might be some conflict if we already have a class with the same name as the header. This fix changes the code to always fully quality classes so the code always compiles correctly.