From ddd64be07f6872c31f32f62f84e77058b9ae7352 Mon Sep 17 00:00:00 2001 From: Dominik Baack <dominik.baack@tu-dortmund.de> Date: Tue, 6 Oct 2020 15:19:05 +0200 Subject: [PATCH] Rebased to master --- Framework/ProcessSequence/BaseProcess.h | 3 ++- Framework/ProcessSequence/ContinuousProcess.h | 6 ------ Framework/ProcessSequence/DecayProcess.h | 3 ++- Framework/ProcessSequence/StackProcess.h | 10 ---------- Processes/AnalyticProcessors/ExecTime.h | 5 ++--- 5 files changed, 6 insertions(+), 21 deletions(-) diff --git a/Framework/ProcessSequence/BaseProcess.h b/Framework/ProcessSequence/BaseProcess.h index 533068893..b1294d64f 100644 --- a/Framework/ProcessSequence/BaseProcess.h +++ b/Framework/ProcessSequence/BaseProcess.h @@ -22,9 +22,10 @@ namespace corsika::process { are of type BaseProcess<T> */ + class _BaseProcess{}; template <typename TDerived> - class BaseProcess { + class BaseProcess : _BaseProcess { protected: friend TDerived; diff --git a/Framework/ProcessSequence/ContinuousProcess.h b/Framework/ProcessSequence/ContinuousProcess.h index 4da02a77e..9969e149e 100644 --- a/Framework/ProcessSequence/ContinuousProcess.h +++ b/Framework/ProcessSequence/ContinuousProcess.h @@ -30,12 +30,6 @@ namespace corsika::process { public: using _TDerived = TDerived; -<<<<<<< HEAD -======= - TDerived& GetRef() { return static_cast<TDerived&>(*this); } - const TDerived& GetRef() const { return static_cast<const TDerived&>(*this); } - ->>>>>>> renamed base process templates // here starts the interface part // -> enforce TDerived to implement DoContinuous... template <typename TParticle, typename TTrack> diff --git a/Framework/ProcessSequence/DecayProcess.h b/Framework/ProcessSequence/DecayProcess.h index 55d1ce7f5..26995467a 100644 --- a/Framework/ProcessSequence/DecayProcess.h +++ b/Framework/ProcessSequence/DecayProcess.h @@ -25,9 +25,10 @@ namespace corsika::process { */ template <typename TDerived> - class DecayProcess : BaseProcess<TDerived> { + struct DecayProcess : BaseProcess<TDerived> { public: using _TDerived = TDerived; + using BaseProcess<TDerived>::GetRef; /// here starts the interface-definition part diff --git a/Framework/ProcessSequence/StackProcess.h b/Framework/ProcessSequence/StackProcess.h index 6a5f8abb7..3cb33952f 100644 --- a/Framework/ProcessSequence/StackProcess.h +++ b/Framework/ProcessSequence/StackProcess.h @@ -35,12 +35,6 @@ namespace corsika::process { StackProcess(const unsigned int nStep) : fNStep(nStep) {} -<<<<<<< HEAD -======= - TDerived& GetRef() { return static_cast<TDerived&>(*this); } - const TDerived& GetRef() const { return static_cast<const TDerived&>(*this); } - ->>>>>>> renamed base process templates /// here starts the interface-definition part // -> enforce TDerived to implement DoStack... template <typename TStack> @@ -61,8 +55,4 @@ namespace corsika::process { //! @} }; - // overwrite the default trait class, to mark BaseProcess<T> as useful process - template <class T> - std::true_type is_process_impl(const StackProcess<T>* impl); - } // namespace corsika::process diff --git a/Processes/AnalyticProcessors/ExecTime.h b/Processes/AnalyticProcessors/ExecTime.h index 0a39d2805..5bc7b2759 100644 --- a/Processes/AnalyticProcessors/ExecTime.h +++ b/Processes/AnalyticProcessors/ExecTime.h @@ -104,9 +104,8 @@ namespace corsika::process { public Secondaries< T, std::is_base_of<corsika::process::SecondariesProcess<typename T::_TDerived>, - T>::value> { - using is_process = decltype(is_process_impl(std::declval<T*>())); - static_assert(std::is_same<is_process, std::true_type>::value, "error message"); + T>::value> { + static_assert(std::is_base_of<corsika::process::_BaseProcess,T>::value, "error message"); }; } // namespace analytic_processors } // namespace corsika::process \ No newline at end of file -- GitLab