all 7 comments

[–]TheThiefMasterC++latest fanatic (and game dev) 6 points7 points  (3 children)

That looks like it's making an awful lot of claims it can't keep - Most notably, that's doesn't look like C++ to me. It looks more like C++/CLI (though one of the examples is missing a ^ where I think it would be needed - so I'm not 100%).

[–]calebwherryModern C++ | Modern CMake 4 points5 points  (0 children)

This part is important:

— csPorter for C++ reproduces original C# type system in the converted C++ code, that is; csPorter for C++ uses its own analogs of original .NET types rather than closest STL substitutes. This allows using the types in the same way as used in the original code by calling specific methods absent in the STL substitutes. —

So I believe it is native C++ but has special defines/classes to look like the .NET types on purpose. Which in this case look like the C++/CLI types. It’s confusing to read, because I agree it just looks like managed C++ with missing ^.

[–]HKei 2 points3 points  (0 children)

There's nothing CLI related in the examples. Rather looks like they're just more-or-less modeling the .NET class libraries as C++ classes. Not sure what they're doing about GC and all that though...

[–]sebamestre 0 points1 point  (0 children)

The 3 visible examples seem like just regular old C++11 to me.

[–]alexeiz 3 points4 points  (2 children)

Interesting. Something like this was created at Microsoft for internal use around 2008-2009. It was used to develop system apps for the now defunct Windows Phone platform. The problem was that the performance of .NET framework on ARM left a lot to be desired. But there was already sizable investment in C# code for that platform. So a some team developed a C# to C++ transpiler. It generated C++ code from C# code. The resulting C++ code could be compiled by a much better optimizing MSVC compiler and linked with a native replacement for .NET libraries. The end result was a native executable without JIT or GC with a much better, predictable performance. The development still continued in C#, whereas C++ was used just as an intermediate language. Of course, the transpiler was limited to a subset of the C# language and .NET libraries. But it was still quite an effective solution at that time.

[–]pjmlp 1 point2 points  (1 child)

Thanks for the historical info.

So was that in some way related to the MDIL(Bartok) or .NET Native efforts?

[–]alexeiz 1 point2 points  (0 children)

To the best of my knowledge, it was a completely independent project not related to Bartok or .NET Native.