Does anyone know if there is a plan to ever implement c++20 support in vexcode, and if so, what date it should come out by? I would really like to use some of those c++20 features in my program (especially concepts).
@jpearman didnt I ask you this a while ago and you told me “yeah it’s fine just might cause some bugs”
There are two parts to this.
first would be updating the version of compiler (clang) we use, the second is either upgrading or verifying the C++ standard library parts that we have buried into vexos.
some background.
A C++ program that just does simple robot control and does not use any C++ standard library classes is perhaps about 10k bytes in size. Once you start using standard library classes, the executable file size can easily jump to 200k or more. When downloading to the vex brain wirelessly that takes a long time to send so the solution we decided upon for VEXcode (or really VCS at that time) was to link against a file of references and keep the actual code inside vexos. The standard C++ libraries we derive all this from are the gcc libraries, as we did this development back in 2017 they do not support the most recent C++ standards. However, not all functionality that C++ gives you resides in library code, a lot is handled by templates inside headers. My point here is that we could update the compiler and there’s a good change some C++ 20 features would work, but I have no idea where it may fail.
The short answer is that we have no plans to make any changes in this area in the near future for VEXcode, however, all of this is controlled by the build files (makefile etc.) and the VSCode extension makes it far easier to have a different toolchain and potentially fall back to a more traditional workflow that links normally and generates large output files. But getting all that to work is on you.