diff options
| author | Bent Bisballe Nyeng <deva@aasimon.org> | 2026-02-02 20:10:41 +0100 |
|---|---|---|
| committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2026-02-02 20:10:41 +0100 |
| commit | f66ab53b9380a5367e24727df620d6620ab031f7 (patch) | |
| tree | 80735e1493b7c8d17186a008c9cf36337dab936d /src/ctor.h | |
| parent | 6accb227b75fef7e99257b0078eb95f9aa0823cc (diff) | |
Apply new syntax to flagsnew_syntax
Diffstat (limited to 'src/ctor.h')
| -rw-r--r-- | src/ctor.h | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -269,6 +269,41 @@ using asm_flags = std::vector<ctor::asm_flag>; struct flags { + template <class ... Args> + requires (( + std::is_same_v<Args, ctor::c_flags> || + std::is_same_v<Args, ctor::cxx_flags> || + std::is_same_v<Args, ctor::ld_flags> || + std::is_same_v<Args, ctor::ar_flags> || + std::is_same_v<Args, ctor::asm_flags> + ) && ...) + constexpr flags(Args && ... arg) + { + ([&] + { + if constexpr(std::is_same_v<Args, ctor::c_flags>) + { + cflags = arg; + } + else if constexpr(std::is_same_v<Args, ctor::cxx_flags>) + { + cxxflags = arg; + } + else if constexpr(std::is_same_v<Args, ctor::ld_flags>) + { + ldflags = arg; + } + else if constexpr(std::is_same_v<Args, ctor::ar_flags>) + { + arflags = arg; + } + else if constexpr(std::is_same_v<Args, ctor::asm_flags>) + { + asmflags = arg; + } + }(), ...); + } + ctor::c_flags cflags; // flags for c compiler ctor::cxx_flags cxxflags; // flags for c++ compiler ctor::ld_flags ldflags; // flags for linker |
