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