New stack interface doesn't build on OS X
Compilation on OS X breaks with the recent changes in the stack interface. This can be reproduced on linux compiling with clang 6 and 7.
OS X report:
In file included from /Users/lukas/CORSIKA8/corsika/Framework/StackInterface/testStackInterface.cc:12:
In file included from /Users/lukas/CORSIKA8/corsika-build/include/corsika/stack/Stack.h:15:
In file included from /Users/lukas/CORSIKA8/corsika-build/include/corsika/stack/StackIteratorInterface.h:15:
In file included from /Users/lukas/CORSIKA8/corsika-build/include/corsika/stack/ParticleBase.h:15:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:439:78: error: no type named 'type' in 'std::__1::enable_if<false, void>'; 'enable_if' cannot be used to disable this declaration
template <bool _Bp, class _Tp = void> using enable_if_t = typename enable_if<_Bp, _Tp>::type;
^~~
/Users/lukas/CORSIKA8/corsika-build/include/corsika/stack/Stack.h:90:31: note: in instantiation of template type alias 'enable_if_t' requested here
template <typename = std::enable_if_t<std::is_reference<StackDataType>{}>>
^
/Users/lukas/CORSIKA8/corsika/Framework/StackInterface/testStackInterface.cc:36:9: note: in instantiation of template class 'corsika::stack::Stack<TestStackData, TestParticleInterface>' requested here
typedef StackTest::ParticleType Particle;
^
Clang 7 report (different location):
In file included from /home/lukas/CORSIKA8/corsika/Framework/StackInterface/testSecondaryView.cc:12:
In file included from /home/lukas/CORSIKA8/corsika-build/include/corsika/stack/SecondaryView.h:15:
In file included from /home/lukas/CORSIKA8/corsika-build/include/corsika/stack/Stack.h:15:
In file included from /home/lukas/CORSIKA8/corsika-build/include/corsika/stack/StackIteratorInterface.h:15:
In file included from /home/lukas/CORSIKA8/corsika-build/include/corsika/stack/ParticleBase.h:15:
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/type_traits:2331:44: error: no type named 'type' in
'std::enable_if<false, void>'; 'enable_if' cannot be used to disable this declaration
using enable_if_t = typename enable_if<_Cond, _Tp>::type;
^~~~~
/home/lukas/CORSIKA8/corsika-build/include/corsika/stack/Stack.h:90:31: note: in instantiation of template type alias 'enable_if_t'
requested here
template <typename = std::enable_if_t<std::is_reference<StackDataType>{}>>
^
/home/lukas/CORSIKA8/corsika/Framework/StackInterface/testSecondaryView.cc:35:9: note: in instantiation of template class
'corsika::stack::Stack<TestStackData, TestParticleInterface>' requested here
typedef StackTest::ParticleType Particle;
^