arch1t3cht / Aegisub

Cross-platform advanced subtitle editor, with new feature branches. Read the README on the feature branch.
http://www.aegisub.org
Other
695 stars 32 forks source link

Switch to C++20 / Rebase on top of TypesettingTools/Aegisub #132

Open arch1t3cht opened 2 months ago

arch1t3cht commented 2 months ago

Tracking issue, see title. TypesettingTools/Aegisub switched to C++20 with various other refactors recently. Since ICU now requires C++17, this is getting more and more pressing. Some other dependencies like BestSource also require C++17.

It'll be tricky to rebase all the individual feature branches while ideally still keeping the old ones around for archiving purposes but I'll have to figure something out.

0tkl commented 2 months ago

So are you decided to sync current TypesettingTools/Aegisub changes before bumping dependencies?

I mean, I've tried different C++ standards on Linux builds. If the goal is simply "get it to compile" in C++17, deal with std::iterator in libaegisub/include/libaegisub/line_iterator.h (just copy what's in TT fork now), then this project can compile without errors. But switch to C++20/23 requires much more necessary changes.

arch1t3cht commented 2 months ago

I've wanted to avoid too many changes that strictly diverge from TypesettingTools master (like a C++17 bump or updating dependencies to different versions than TypesettingTools would), since that has the risk of complicating things even further. But rebasing everything is quite a big undertaking too so, yes, I'll probably end up just bumping to C++17 for now. It's just something to be very careful with to not make things more complicated in the future.