z00m128 / sjasmplus

Command-line cross-compiler of assembly language for Z80 CPU.
http://z00m128.github.io/sjasmplus/
BSD 3-Clause "New" or "Revised" License
375 stars 52 forks source link

migrate to C++17, mainly to switch file system related stuff to `std::filesystem` #240

Open ped7g opened 2 days ago

ped7g commented 2 days ago

PLEASE COMMENT IN THIS ISSUE if you see any emerging problem by switching to C++17 (ie. you are actively using sjasmplus on platform which doesn't have latest compiler and you think it's worth to maintain C++14 compatibility with all the extra effort involved).

C++17 support across compilers: https://en.cppreference.com/w/cpp/compiler_support/17 C++17 support in GCC: https://gcc.gnu.org/projects/cxx-status.html#cxx17 libstdc++17 implementation not experimental since GCC-9: https://gcc.gnu.org/gcc-9/changes.html#libstdcxx

filesystem since: GCC9 (8 experimental), CLANG7 (experimental?), MSVC VS 2017 15.7, Apple clang 11.0.0

Another option is to use some library like https://github.com/gulrak/filesystem (C++11, single-header-lib, mostly compatible with std::filesystem API with few minor differences).

As far as I remember the C++14 was to support GCC5, consult with z00m first (Busy is unable to compile latest sources for years now, so he will be just more unable, until he starts to use some decent OS with regular compiler updates).

ped7g commented 2 days ago

@jurajlutter @kborowinski and other assigned: let me know if you disagree about bump to C++17, silence will be treated as agreement.

jurajlutter commented 2 days ago

No objections from my side.

kborowinski commented 2 days ago

I've no objections.

cizo2000 commented 2 days ago

OK

z00m128 commented 2 days ago

I’m fine with that, let´s bump to gcc9 as new minimum.