the standard itanium C++ ABI (the one used by gcc) covers the entire C++ language.
d
dmitry.petrov
03/21/2017, 7:01 AM
Except for templates. They are not a part of ABI, and most of the C++ libraries can't be used without C++ headers.
m
mikehearn
03/21/2017, 9:47 AM
I wouldn't try supporting all templates, but there are lots of big C++ libraries that use templates fairly minimally. Qt, Unreal Engine, even things like COM on Windows.... not to mention that many large internal codebases primarily use classes, pointers and perhaps a handful of STL classes.
I think, like Java, matching the underlying ABI as far as possible and accepting some cases where it doesn't work would still have a lot of value for people wanting to migrate off C++ (for whom there are today effectively no market solutions except for the C++/CLI thing from MS)
d
dmitry.petrov
03/21/2017, 9:48 AM
I'd dare not to say that about Qt, taking into account that all Qt container classes are templates.
Of cause there's a rather big "binary-only" subset of Qt.
m
mikehearn
03/21/2017, 9:52 AM
OK, I admit my Qt knowledge is about 10 years out of date š It used to provide things like QString itself and didn't use templates much. But OK, do as you wish š I bet if you guys put your minds to it, you can make a lot more progress on this than you'd imagine.
d
dmitry.petrov
03/21/2017, 9:56 AM
Sure. My background is also somewhat "tainted" - for some reason I keep thinking that if you can't consume 120% of the existing code, that's no class š