Fix compilation with C++17
Merge request reports
Activity
@graven, I fixed the easy case, but I need you for the piece of black magic that fails in https://lhcb-nightlies.cern.ch/logs/build/nightly/lhcb-lcg-dev3/427/x86_64-centos7-gcc7-opt/Gaudi/#show_GaudiExamples/GaudiExamples_138
I believe you wanted to implement something like: https://isocpp.org/blog/2015/01/for-each-argument-sean-parent
added bug fix label
added 6 commits
-
7da9ddb8...d2ff12c1 - 5 commits from branch
gaudi:v29-patches
- 043372b6 - Hide local implementation of as_const when using C++17
-
7da9ddb8...d2ff12c1 - 5 commits from branch
Can you try the (equivalent of the) fold expression on L7 of this example, ie.
diff --git a/GaudiAlg/GaudiAlg/Transformer.h b/GaudiAlg/GaudiAlg/Transformer.h index 9241a9a..53f0a1e 100644 --- a/GaudiAlg/GaudiAlg/Transformer.h +++ b/GaudiAlg/GaudiAlg/Transformer.h @@ -82,8 +82,7 @@ namespace Gaudi using details::put; try { auto out = as_const( *this )( as_const( *std::get<I>( this->m_inputs ).get() )... ); - (void)std::initializer_list<int>{ - ( put( std::get<O>( this->m_outputs ), std::move( std::get<O>( out ) ) ), 0 )...}; + ( put( std::get<O>( this->m_outputs ), std::move( std::get<O>( out ) ) ), ... ); } catch ( GaudiException& e ) { ( e.code() ? this->warning() : this->error() ) << e.message() << endmsg; return e.code();
Edited by Gerhard Ravenbetter yet, to be backwards compatible:
diff --git a/GaudiAlg/GaudiAlg/Transformer.h b/GaudiAlg/GaudiAlg/Transformer.h index 9241a9a..bec3148 100644 --- a/GaudiAlg/GaudiAlg/Transformer.h +++ b/GaudiAlg/GaudiAlg/Transformer.h @@ -82,8 +82,12 @@ namespace Gaudi using details::put; try { auto out = as_const( *this )( as_const( *std::get<I>( this->m_inputs ).get() )... ); +#if __cplusplus < 201703L (void)std::initializer_list<int>{ ( put( std::get<O>( this->m_outputs ), std::move( std::get<O>( out ) ) ), 0 )...}; +#else + ( put( std::get<O>( this->m_outputs ), std::move( std::get<O>( out ) ) ), ... ); +#endif } catch ( GaudiException& e ) { ( e.code() ? this->warning() : this->error() ) << e.message() << endmsg; return e.code();
- [2018-02-07 00:25] Validation started with lhcb-2018-patches#109
- [2018-02-07 08:04] Validation started with lhcb-gaudi-merge#408
- [2018-02-07 12:50] Validation started with lhcb-lcg-dev4#428
- [2018-02-07 12:51] Validation started with lhcb-lcg-dev3#428
- [2018-02-08 00:02] Validation started with lhcb-lcg-dev4#429
- [2018-02-08 00:03] Validation started with lhcb-lcg-dev3#429
- [2018-02-08 00:35] Validation started with lhcb-2018-patches#110
- [2018-02-09 00:02] Validation started with lhcb-lcg-dev4#430
- [2018-02-09 00:03] Validation started with lhcb-lcg-dev3#430
- [2018-02-09 00:28] Validation started with lhcb-2018-patches#111
- [2018-02-10 00:02] Validation started with lhcb-lcg-dev4#431
- [2018-02-10 00:03] Validation started with lhcb-lcg-dev3#431
- [2018-02-10 00:25] Validation started with lhcb-2018-patches#112
- [2018-02-11 00:03] Validation started with lhcb-lcg-dev4#432
- [2018-02-11 00:03] Validation started with lhcb-lcg-dev3#432
- [2018-02-11 00:26] Validation started with lhcb-2018-patches#113
- [2018-02-12 00:02] Validation started with lhcb-lcg-dev4#433
- [2018-02-12 00:04] Validation started with lhcb-lcg-dev3#433
- [2018-02-12 00:25] Validation started with lhcb-2018-patches#114
- [2018-02-13 00:02] Validation started with lhcb-lcg-dev3#434
- [2018-02-13 00:03] Validation started with lhcb-lcg-dev4#434
- [2018-02-13 00:25] Validation started with lhcb-2018-patches#115
- [2018-02-14 00:02] Validation started with lhcb-lcg-dev3#435
- [2018-02-14 00:03] Validation started with lhcb-lcg-dev4#435
- [2018-02-14 00:30] Validation started with lhcb-2018-patches#116
- [2018-02-15 00:02] Validation started with lhcb-lcg-dev3#436
- [2018-02-15 00:04] Validation started with lhcb-lcg-dev4#436
- [2018-02-15 00:30] Validation started with lhcb-2018-patches#117
- [2018-02-16 00:04] Validation started with lhcb-lcg-dev4#437
- [2018-02-16 00:04] Validation started with lhcb-lcg-dev3#437
- [2018-02-16 00:35] Validation started with lhcb-2018-patches#118
- [2018-02-17 00:02] Validation started with lhcb-lcg-dev3#438
- [2018-02-17 00:02] Validation started with lhcb-lcg-dev4#438
- [2018-02-17 00:28] Validation started with lhcb-2018-patches#119
- [2018-02-18 00:03] Validation started with lhcb-lcg-dev3#439
- [2018-02-18 00:33] Validation started with lhcb-2018-patches#120
- [2018-02-19 00:03] Validation started with lhcb-lcg-dev3#440
- [2018-02-19 00:03] Validation started with lhcb-lcg-dev4#440
- [2018-02-19 00:32] Validation started with lhcb-2018-patches#121
- [2018-02-20 00:03] Validation started with lhcb-lcg-dev4#441
- [2018-02-20 00:03] Validation started with lhcb-lcg-dev3#441
- [2018-02-20 00:31] Validation started with lhcb-2018-patches#122
- [2018-02-21 00:02] Validation started with lhcb-lcg-dev3#442
- [2018-02-21 00:02] Validation started with lhcb-lcg-dev4#442
- [2018-02-21 00:41] Validation started with lhcb-2018-patches#123
- [2018-02-22 01:03] Validation started with lhcb-lcg-dev4#443
- [2018-02-22 01:03] Validation started with lhcb-lcg-dev3#443
- [2018-02-23 01:02] Validation started with lhcb-lcg-dev3#444
- [2018-02-23 01:04] Validation started with lhcb-lcg-dev4#444
- [2018-02-24 01:02] Validation started with lhcb-lcg-dev4#445
- [2018-02-24 01:02] Validation started with lhcb-lcg-dev3#445
- [2018-02-25 01:03] Validation started with lhcb-lcg-dev3#446
- [2018-02-25 01:03] Validation started with lhcb-lcg-dev4#446
- [2018-02-26 01:03] Validation started with lhcb-lcg-dev4#447
- [2018-02-26 01:03] Validation started with lhcb-lcg-dev3#447
- [2018-02-27 01:02] Validation started with lhcb-lcg-dev3#448
- [2018-02-27 01:02] Validation started with lhcb-lcg-dev4#448
- [2018-02-28 01:02] Validation started with lhcb-lcg-dev3#449
- [2018-02-28 01:02] Validation started with lhcb-lcg-dev4#449
- [2018-03-01 00:02] Validation started with lhcb-lcg-dev4#450
- [2018-03-01 00:03] Validation started with lhcb-lcg-dev3#450
- [2018-03-02 00:02] Validation started with lhcb-lcg-dev4#451
- [2018-03-02 00:04] Validation started with lhcb-lcg-dev3#451
- [2018-03-03 00:02] Validation started with lhcb-lcg-dev4#452
- [2018-03-03 00:03] Validation started with lhcb-lcg-dev3#452
- [2018-03-04 00:02] Validation started with lhcb-lcg-dev4#453
- [2018-03-04 00:03] Validation started with lhcb-lcg-dev3#453
- [2018-03-05 00:05] Validation started with lhcb-lcg-dev4#454
- [2018-03-05 00:05] Validation started with lhcb-lcg-dev3#454
- [2018-03-06 00:02] Validation started with lhcb-lcg-dev3#455
- [2018-03-06 00:02] Validation started with lhcb-lcg-dev4#455
- [2018-03-07 00:03] Validation started with lhcb-lcg-dev3#456
- [2018-03-07 00:04] Validation started with lhcb-lcg-dev4#456
- [2018-03-08 00:03] Validation started with lhcb-lcg-dev4#457
- [2018-03-08 00:03] Validation started with lhcb-lcg-dev3#457
- [2018-03-09 00:03] Validation started with lhcb-lcg-dev3#458
- [2018-03-09 00:04] Validation started with lhcb-lcg-dev4#458
- [2018-03-10 00:03] Validation started with lhcb-lcg-dev3#459
- [2018-03-10 00:05] Validation started with lhcb-lcg-dev4#459
- [2018-03-11 00:03] Validation started with lhcb-lcg-dev3#460
- [2018-03-11 00:03] Validation started with lhcb-lcg-dev4#460
- [2018-03-12 00:03] Validation started with lhcb-lcg-dev4#461
- [2018-03-12 00:03] Validation started with lhcb-lcg-dev3#461
- [2018-03-13 00:03] Validation started with lhcb-lcg-dev3#462
- [2018-03-13 00:03] Validation started with lhcb-lcg-dev4#462
- [2018-03-14 00:03] Validation started with lhcb-lcg-dev4#463
- [2018-03-14 00:04] Validation started with lhcb-lcg-dev3#463
- [2018-03-15 00:03] Validation started with lhcb-lcg-dev3#464
- [2018-03-15 00:04] Validation started with lhcb-lcg-dev4#464
- [2018-03-16 00:03] Validation started with lhcb-lcg-dev4#465
- [2018-03-16 00:03] Validation started with lhcb-lcg-dev3#465
- [2018-03-17 00:02] Validation started with lhcb-lcg-dev3#466
- [2018-03-17 00:04] Validation started with lhcb-lcg-dev4#466
- [2018-03-18 00:02] Validation started with lhcb-lcg-dev4#467
- [2018-03-18 00:04] Validation started with lhcb-lcg-dev3#467
- [2018-03-19 00:02] Validation started with lhcb-lcg-dev4#468
- [2018-03-19 00:03] Validation started with lhcb-lcg-dev3#468
- [2018-03-20 00:03] Validation started with lhcb-lcg-dev4#469
- [2018-03-20 00:03] Validation started with lhcb-lcg-dev3#469
- [2018-03-21 00:02] Validation started with lhcb-lcg-dev4#470
- [2018-03-21 00:03] Validation started with lhcb-lcg-dev3#470
- [2018-03-21 01:16] Validation started with lhcb-lcg-dev3#470
- [2018-03-21 01:31] Validation started with lhcb-lcg-dev4#470
- [2018-03-22 00:03] Validation started with lhcb-lcg-dev3#471
- [2018-03-22 00:04] Validation started with lhcb-lcg-dev4#471
- [2018-03-22 01:02] Validation started with lhcb-lcg-dev4#471
- [2018-03-22 02:34] Validation started with lhcb-lcg-dev3#471
- [2018-03-22 02:35] Validation started with lhcb-lcg-dev4#471
- [2018-03-23 00:04] Validation started with lhcb-lcg-dev4#472
- [2018-03-23 00:05] Validation started with lhcb-lcg-dev3#472
- [2018-03-24 00:03] Validation started with lhcb-lcg-dev4#473
- [2018-03-24 00:03] Validation started with lhcb-lcg-dev3#473
- [2018-03-25 00:03] Validation started with lhcb-lcg-dev4#474
- [2018-03-25 00:04] Validation started with lhcb-lcg-dev3#474
- [2018-03-26 00:03] Validation started with lhcb-lcg-dev3#475
- [2018-03-26 00:03] Validation started with lhcb-lcg-dev4#475
- [2018-03-27 00:03] Validation started with lhcb-lcg-dev3#476
- [2018-03-27 00:04] Validation started with lhcb-lcg-dev4#476
- [2018-03-28 00:02] Validation started with lhcb-lcg-dev3#477
- [2018-03-28 00:03] Validation started with lhcb-lcg-dev4#477
- [2018-03-29 00:03] Validation started with lhcb-lcg-dev4#478
- [2018-03-29 00:04] Validation started with lhcb-lcg-dev3#478
- [2018-03-30 00:03] Validation started with lhcb-lcg-dev4#479
- [2018-03-30 00:04] Validation started with lhcb-lcg-dev3#479
- [2018-03-31 00:02] Validation started with lhcb-lcg-dev4#480
- [2018-03-31 00:03] Validation started with lhcb-lcg-dev3#480
- [2018-04-01 00:03] Validation started with lhcb-lcg-dev3#481
- [2018-04-01 00:03] Validation started with lhcb-lcg-dev4#481
- [2018-04-02 00:03] Validation started with lhcb-lcg-dev3#482
- [2018-04-02 00:03] Validation started with lhcb-lcg-dev4#482
- [2018-04-03 00:03] Validation started with lhcb-lcg-dev4#483
- [2018-04-03 00:04] Validation started with lhcb-lcg-dev3#483
- [2018-04-04 00:02] Validation started with lhcb-lcg-dev3#484
- [2018-04-04 00:03] Validation started with lhcb-lcg-dev4#484
- [2018-04-05 00:02] Validation started with lhcb-lcg-dev3#485
- [2018-04-05 00:04] Validation started with lhcb-lcg-dev4#485
- [2018-04-06 00:03] Validation started with lhcb-lcg-dev3#486
- [2018-04-06 00:04] Validation started with lhcb-lcg-dev4#486
- [2018-04-07 00:03] Validation started with lhcb-lcg-dev4#487
- [2018-04-07 00:04] Validation started with lhcb-lcg-dev3#487
- [2018-04-08 00:04] Validation started with lhcb-lcg-dev4#488
- [2018-04-08 00:05] Validation started with lhcb-lcg-dev3#488
- [2018-04-09 00:03] Validation started with lhcb-lcg-dev4#489
- [2018-04-09 00:04] Validation started with lhcb-lcg-dev3#489
- [2018-04-10 00:03] Validation started with lhcb-lcg-dev3#490
- [2018-04-10 00:04] Validation started with lhcb-lcg-dev4#490
- [2018-04-11 00:02] Validation started with lhcb-lcg-dev3#491
- [2018-04-11 00:06] Validation started with lhcb-lcg-dev4#491
- [2018-04-11 09:31] Validation started with lhcb-lcg-dev4#491
- [2018-04-12 00:02] Validation started with lhcb-lcg-dev4#492
- [2018-04-12 00:04] Validation started with lhcb-lcg-dev3#492
- [2018-04-13 00:03] Validation started with lhcb-lcg-dev4#493
- [2018-04-13 00:04] Validation started with lhcb-lcg-dev3#493
Edited by Software for LHCbmentioned in commit lhcb-core/LHCbNightlyConf@a61a76d9
- Resolved by Marco Clemencic
mentioned in issue #12
mentioned in commit c1cac2bb
Please register or sign in to reply