diff --git a/algo/unpack/Unpack.cxx b/algo/unpack/Unpack.cxx index 668de3d834e6edf7ff6f25dc82af335a5f557377..b9560675b5bfb480bdf09d55779ef057499b8efd 100644 --- a/algo/unpack/Unpack.cxx +++ b/algo/unpack/Unpack.cxx @@ -184,8 +184,17 @@ namespace cbm::algo std::vector<fles::MicrosliceDescriptor> msDesc; // microslice descriptors std::vector<const u8*> msContent; // pointer to microslice content auto legalEqIds = GetEqIds(algos); - auto [numMs, sizeBytes] = + + // Workaround a problem for some clang versions + // Capturing structured bindings either is avaialable with C++20 + // Obviously GCC supports it already and has no problems but clang or at + // least some clang versions fail during compilation + // auto [numMs, sizeBytes] = + // ParallelInit(ts, subsystem, gsl::make_span(legalEqIds), sys_ver, genericMonitor, msEqIds, msDesc, msContent); + std::pair<size_t, size_t> tmp = ParallelInit(ts, subsystem, gsl::make_span(legalEqIds), sys_ver, genericMonitor, msEqIds, msDesc, msContent); + auto numMs = tmp.first; + auto sizeBytes = tmp.second; std::vector<std::vector<Digi>> msDigis(numMs); // unpacked digis per microslice std::vector<Monitor> monitor(numMs); // unpacking monitoring data per microslice